[네트워크] TCP & UDP
·
CS 지식/[네트워크]
TCP 연결 지향형 프로토콜로 신뢰성있는 데이터 전송을 보장 신뢰적인 연결방식 서버와 클라이언트의 함수 호출 순서가 중요 서버 : socket() 생성 → bind() 소켓 주소 할당 → listen() 연결 요청 대기 상태 → accept() 연결 허용 → read/write() 데이터 송수신 → close() 연결 종료 클라이언트 : socket() 생성 → connect() 연결 요청 → read/write() 데이터 송수신 → close() 연결 종료 서버와 클라이언트의 차이 클라이언트 소켓 생성 후 서버로 연결을 요청하는 과정에서 차이가 존재 서버는 listen() 호출 이후부터 연결 요청 대기 큐를 만들어 놓고, 그 이후에 클라이언트가 연결 요청을 할 수 있음 이때 서버가 바로 accept()..
[네트워크] TCP 3 way handshake & 4 way handshake
·
CS 지식/[네트워크]
연결을 성립하고 해제하는 과정 3 way handshake - 연결 성립 TCP는 정확한 전송을 보장해야 함 (SYN : 연결 요청 플래그 / ACK : 응답) 클라이언트가 서버에게 접속을 요청하는 SYN 패킷을 보냄 (sequence : x) 서버가 클라이언트 요청인 SYN(x)을 받고, 클라이언트로 받았다는 신호(요청을 수락한다는)인 ACK와 SYN이 설정된 패킷을 보냄 (sequence : y, ACK : x + 1) 클라이언트는 서버의 수락 응답인 ACK(x+1)와 SYN(y) 패킷을 받고, ACK(y+1)를 서버로 보냄 → 그러면 연결 성립 → 이렇게 3번의 통신이 완료되면 연결이 성립된다. (3번이라 3 way handshake인 것) 4 way handshake - 연결 해제 연결 성립 후,..