TIL

TIL 240906 (OSI 전송 계층)

j-coder 2024. 9. 6. 21:49

1. TCP와 UDP의 개념

TCP

데이터 전송을 안전하게 하는 프로토콜이다.

가상 회선 패킷 교환 방식으로 데이터의 순서가 지켜진다.

데이터는 세그먼트로 나뉘어 전송되고 수신 측에서 재조립된다.

연결 지향적이고 3 - way handshake 과정을 거친다.

 

헤더가 20 ~ 60바이트로 가변적이다.

Source Port Number 출발지 포트 번호이며 송신 측 포트를 나타냄
Destination Port Number 목적지 포트 번호이며 수신 측 포트를 나타냄
Sequence Number 송신된 데이터의 순서 번호이며 데이터의 순서를 추적하는 데 사용됨
Acknowledgement Number 수신자가 기대하는 데이터의 순서를 확인할 수 있음
Data Offset TCP 헤더의 길이로 4비트 크기로 최대 15를 나타낼수 있음 (60바이트)
Reserved 향후 사용을 위해 예약된 비트
Control Flags 여러 제어 플래그(SYN, ACK, URG, RST 등)
Window Size 수신 측이 수신할 수 있는 최대 데이터의 양
Checksum 오류 검출을 위해 사용됨
Urgent Pointer 긴급 데이터 위치
Optional Data TCP 헤더에 포함될 수 있는 선택적 데이터

 

3 - way handshake

TCP의 연결 성립은 3개의 과정을 거친다.

1 SYN 단계 : 클라이언트는 서버에 클라이언트의 ISN을 담아 SYN을 보낸다
2 SYN + ACK 단계 : 서버는 클라이언트의 SYN을 수신해 서버의 ISN을 보내며 승인번호로 클라이언트의 ISN + 1을 보낸다
3 ACK 단계 : 클라이언트는 서버의 ISN + 1 값인 승인번호를 담아 ACK를 서버에 보낸다

 

ISN : TCP 기반 데이터 통신에서 각각의 새 연결에 할당된 고유한 32비트 시퀀스 번호.

         다른 데이터 바이트와 충돌하지 않는 시퀀스 번호를 할당하는 데 도움이 된다.

SYN(synchronization) :  연결 요청 플래그

ACK(acknowledgement)  : 응답 플래그

 

UDP

비연결형 프로토콜로 데이터 전송의 안전성을 장담 할 수 없다.

데이터그램 패킷 교환 방식으로 순서가 지켜지지 않아 속도가 빠르다.

데이터 손실이 허용되는 경우에 적합하다.

 

헤더는 8바이트 고정 길이이다.

 

Source Port 송신 측 포트이며 데이터를 보낸 애플리케이션이 사용한 포트
Destination Port 수신 측 포트이며 데이터를 받을 애플리케이션이 사용한 포트
Length UDP 헤더와 데이터의 전체 길이를 바이트 단위로 나타냄. 최소길이는 8바이트 (헤더 자체의 크기)
Checksum 오류 검출을 위한 필드. UDP에서 선택적으로 사용되며 값이 0일 경우 검사 생략

 

 

TCP 와 UDP 비교

  TCP UDP
연결 방식 연결 지향 비연결형
패킷 교환 방식 가상 회선 패킷 교환 데이터그램 패킷 교환
신뢰성 O X
오류 검사 재전송, 체크섬 체크섬
패킷의 순서 보장 O X
속도 느리다 빠르다
헤더 길이 20 ~ 60바이트 가변 길이 8바이트 고정 길이
브로드캐스트 지원 O X
사용 예 이메일 전송 실시간 게임

 

2. 포트

네트워크 연결이 시작되고 끝나는 가상 지점이다.

소프트웨어 기반이고 컴퓨터의 운영체제에서 관리한다.

각 포트는 특정 프로세스 또는 서비스와 연결되며 서로 다른 종류의 트래픽을 쉽게 구별할 수 있다.

포트를 사용하면 수신데이터로 수행할 작업을 파악하는데 도움이 된다.

 

 

 

 

출처

https://walwaldev.tistory.com/103

 

[개념 정리/네트워크] TCP/IP 4계층 - 전송 계층

전송 계층은 TCP, UDP가 대표적이며, 애플리케이션 계층에서 받은 메시지를 기반으로 세그먼트 또는 데이터그램으로 데이터를 쪼개고 데이터가 오류 없이 순서대로 전달되도록 도움을 주는 계층

walwaldev.tistory.com

https://itwiki.kr/w/OSI_7%EA%B3%84%EC%B8%B5

 

IT위키

IT에 관한 모든 지식. 함께 만들어가는 깨끗한 위키

itwiki.kr

https://www.cloudflare.com/ko-kr/learning/network-layer/what-is-a-computer-port/