

TCP/IP

(4) Application 계층 : OSI 5,6,7계층에 해당, TCP/IP 기반의 응용 프로그램을 구분할 때 사용
(3) Transport 계층 : OSI 전송계층 해당, 통신 노드 간의 연결을 제어하고, 자료의 송수신을 담당
(2) Internet 계층: OSI 네트워크 계층 해당, 통신 노드 간의 IP 패킷을 전송하는 기능 및 라우팅 기능 담당
(1) Network Access 계층 : OSI 물리계층과 데이터 링크 계층에 해당 ,하드웨어적인 요소와 관련된 모든 것을 지원하는 계층
TCP/UDP
TCP – 인터넷상에서 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜
UDP – 데이터를 데이터그램 단위로 처리하는 프로토콜

3way-handshake,4way-handshake -TCP의 연결 및 해제 과정

TCP Connection (3-way handshake)
- 먼저 open()을 실행한 클라이언트가 SYN을 보내고 SYN_SENT 상태로 대기
- 서버는 SYN_RCVD 상태로 바꾸고 SYN과 응답 ACK를 보낸다.
- SYN과 응답 ACK을 받은 클라이언트는 ESTABLISHED 상태로 변경하고 서버에게 응답 ACK를 보낸다
- 응답 ACK를 받은 서버는 ESTABLISHED 상태로 변경
TCP Disconnection (4-way handshake)
- 는먼저 close()를 실행한 클라이언트가 FIN을 보내고 FIN_WAIT1 상태로 대기
- 서버는 CLOSE_WAIT 으로 바꾸고 응답 ACK를 전달 동시에 해당 포트에 연결되어 있는 어플리케이션에게 close() 요청
- ACK를 받은 클라이언트는 상태를 FIN_WAIT2로 변경
- Close() 요청을 받은 서버 어플리케이션은 종료 프로세스를 진행하고 FIN을 클라이언트에 보내 LAST_ACK 상태로 변경
- FIN을 받은 클라이언트는 ACK를 서버에 다시 전송하고 TIME_WAIT으로 상태를 바꾼다.TIME_WAIT에서 일정시간이 지나면 CLOSED 된다. ACK 를 받은 서버도 포트를 CLOSED로 닫는다.
