본문 바로가기
ComputerScience/(짧)CS전공지식노트

2장 - TCP/IP 4계층 모델

by VictorMeredith 2023. 3. 7.

인터넷 프로토콜 스위트(Internet protocol suite)는 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 프로토콜의 집합이다.

이를 TCP/IP 4계층 모델 혹은 OSI 7계층모델로 설명하기도 한다.

 

2.2.1 계층 구조

TCP/IP 계층은 네 개의 계층을 가지고 있으며, OSI 7계층과 많이 비교된다.

대표스택과 계층 비교

- 이 계층들은 특정 계층이 변경되었을 경우 다른 계층이 영향을 받지 않도록 설계되었다.

 

애플리케이션 계층

- FTP, HTTP, SSH, SMTP, DNS 등 응용 프로그램이 사용되는 프로토콜 계층이며, 웹 서비스, 이메일 등 서비스를 실질적으로 사람들에게 제공하는 층이다.

- FTP : 파일 전송 표준 통신 프로토콜

- SSH : 암호화 네트워크 프로토콜

- HTTP : WWW를 위한 통신의 기초, 웹사이트 이용하는데 쓰이는 프로토콜

- SMTP : 전자메일 전송을 위한 통신 프로토콜

- DNS : 도메인 이름과 IP 주소를 매핑해주는 서버

 

전송 계층

- 송신자와 수신자를 연결하는 통신서비스를 제공하며, 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어를 제공할 수 있으며, 애플리케이션과 인터넷계층 사이의 데이터가 전달될 때 중계 역할을 한다. 대표적으로 TCP와 UDP가 있다.

- TCP는 패킷 사이의 순서를 보장하고 연결지향 프로토콜을 사용해서 연결하며, 신뢰성을 구축해서 수신여부를 확인하여 '가상회선 패킷 교환 방식'을 사용한다.

- UDP는 순서를 보장하지 않고 수신 여부를 확인하지 않으며, 단순이 데이터만 주는 '데이터그램 패킷 교환 방식'을 사용한다.

- 가상회선 패킷 교환방식 : 각 패킷에는 가상회선 패킷 식별자가 포함되며, 모든 패킷을 전송하면 가상회선이 해제되고 패킷들은 순서대로 도착하는 방식이다.

- 데이터그램 패킷 교환방식 : 패킷이 독립적으로 이동하며 최적의 경로를 선택하여 간다. 하나의 메시지에서 분할된 패킷은 서로 다른 경로로 전송될 수 있으며 도착한 순서가 다를 수 있다.

 

TCP 연결 성립과정

- 신뢰성을 확보할 때 3-way handshake 작업을 진행한다.

  1) SYN단계 : 클라이언트는 서버에 ISN을 담아 SYN을 보낸다. ISN은 새로운 TCP연결의 첫 번째 패킷에 할당된 임의의 시퀀스 번호이다. (장치마다 다를 수 있다)

  2) SYN + ACK단계 : 서버는 클라이언트의 SYN을 수신하고 서버의 ISN을 보내며 승인번호로 클라이언트의 ISN+1 을 보낸다.

  3) ACK단계 : 클라이언트는 서버의 ISN+1한 값인 승인번호를 담아 ACK를 서버에 보낸다.

- 3-way handshake 작업 이후 신뢰성이 구축하고 데이터 전송을 시작한다. UDP는 이 작업이 없어서 신뢰성이 없는 계층이다.

- SYN : 연결요청 플래그

- ACK : 응답 플래그

- ISN : 초기 네트워크 연결을 할때 할당된 32비트 고유 시퀀스 번호

 

TCP 연결 해제과정

- 4-way-handshake 의 과정을 거친다.

  1) 클라이언트가 연결을 닫으려고 할 때 FIN으로 설정된 세그먼트를 보낸다. 그리고 클라이언트는 FIN_WAIT_1 상태로 들어가고 서버의 응답을 기다린다.

  2) 서버는 클라이언트로 ACK라는 승인 세그먼트를 보낸다. 그리고 CLOSE_WAIT 상태에 들어간다. 클라이언트가 세그먼트를 받으면 FIN_WAIT2 상태에 들어간다.

  3) 서버는 ACK를 보내고 일정 시간 이후 클라이언트에 FIN이라는 세그먼트를 보낸다.

  4) 클라이언트는 TIME_WAIT상태가 되고 다시 서버로 ACK를 보내서 서버는 CLOSED 상태가 된다. 이후 클라이언트는 어느 정도 대기 후 연결이 닫히고 연결 해제된다.

- 일정시간 이후에 닫는 이유(TIME_WAIT) : 지연 패킷이 발생할 경우를 대비하기 위해서(무결성), 연결이 닫혔는지 확인하기 위해서이다.

- TIME_WAIT : 소켓이 바로 소멸되지 않고 일정시간 유지되는 것(우분투는 60초, 윈도우는 4분)

 

댓글