TIL 240906 (OSI 전송 계층)
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/