본문 바로가기
Develop

TCP/IP 4계층 모델

by jaeyoungb 2023. 7. 12.

인터넷 프로토콜 스위트(internet protocol suite)는 프로토콜의 집합으로,

TCP/IP 4계층 모델이나 OSI 7계층 모델로 설명할 수 있습니다.

 

TCP/IP 4계층 OSI 7계층
애플리케이션 계층 애플리케이션 계층
프레젠테이션 계층
세션 계층
전송 계층 전송 계층
인터넷 계층 네트워크 계층
링크 계층 데이터 링크 계층
물리 계층

 

 

TCP/IP 4계층 모델 / https://en.wikipedia.org/wiki/File:UDP_encapsulation.png
OSI 7계층 모델 / https://freesvg.org/osi-model

 

애플리케이션 계층

웹 서비스, 이메일 등 서비스를 실질적으로 사람들에게 제공합니다.

더보기

FTP

장치 간의 파일을 전송하는데 사용되는 표준 통신 프로토콜

 

SSH

네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜

 

HTTP

웹 사이트를 이용하는 데 쓰이는 프로토콜

 

SMTP

전자 메일 전송을 위한 인터넷 표준 통신 프로토콜

 

DNS

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

 

 

전송 계층

애플리케이션과 인터넷 계층 사이의 데이터가 전달될 때의 중계 역할을 합니다.

대표적으로 TCP, UDP가 있습니다.

더보기

TCP

패킷 사이의 순서를 보장

연결 지향 프로토콜을 사용하여 신뢰성을 구축하고 수신 여부를 확인

가상회선 패킷 교환 방식을 사용

 

UDP

순서를 보장하지 않음

수신 여부를 확인하지 않음

단순히 데이터만 주는 데이터그램 패킷 교환 방식을 사용

 

 

TCP 연결 성립 과정  →   3-way handshake

1. SYN 단계

클라이언트는 클라이언트의 ISN을 담아 SYN을 서버로 보냅니다.

 

2. SYN + ACK 단계

서버는 SYN을 수신하고 서버의 ISN과 승인번호로 클라이언트의 ISN+1을 클라이언트로 보냅니다.

 

3. ACK 단계

클라이언트는 승인번호로 서버의 ISN+1한 값을 담아 ACK를 서버로 보냅니다.

더보기

SYN(SYNchronization)

연결 요청 플래그

 

ACK(ACKnowledgement)

응답 플래그

 

ISN(Initial Sequence Numbers)

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

 

https://commons.wikimedia.org/wiki/File:FIN_a_3_vie.jpg

 

 

위의 과정을 거쳐서 TCP 연결을 수립하기 떄문에, TCP는 신뢰성이 있는 계층이라고 합니다.

반면에, UDP는 이러한 과정이 없기에 신뢰성이 없는 계층이라고 합니다.

 

 

 

TCP 연결 해제 과정  →   4-way handshake

1.

클라이언트가 FIN으로 설정된 세그먼트를 서버에 보냅니다.

클라이언트는 FIN_WAIT_1 상태에 들어갑니다.

 

2.

서버는 ACK라는 승인 세그먼트를 클라이언트로 보냅니다.

서버는 CLOSE_WAIT 상태에 들어갑니다.

클라이언트가 승인 세그먼트를 받으면 FIN_WAIT_2 상태에 들어갑니다.

 

3.

서버는 일정 시간 후에 FIN이라는 세그먼트를 클라이언트에 보냅니다.

 

4.

클라이언트는 TIME_WAIT 상태에 들어가고, 다시 ACK를 서버로 보내서 서버는 CLOSED 상태가 됩니다.

이후 클라이언트는 일정 시간을 대기한 후 연결이 닫히고 클라이언트와 서버의 모든 자원이 연결 해제됩니다.

 

https://commons.wikimedia.org/wiki/File:TCP_CLOSE.svg

 

 

TIME_WAIT 상태가 존재하는 이유는 다음과 같습니다.

1. 패킷이 늦게 도달해서 처리하지 못해서 발생하는 데이터 무결성 문제를 대비하기 위해

2. 두 장치가 연결이 닫혔는지 확인하기 위해

더보기

데이터 무결성(data integrity)

- 데이터의 정확성과 일관성을 유지하고 보증하는 것