2024 컴퓨터 네트워크 개론 - 4. 전송 계층
- 1. OSI 7계층 + TCP/IP 4계층
- 2. 네트워크 인터페이스 계층
- 3. 인터넷 계층
- 4. 전송 계층
- 5. 응용 계층
각 계층의 프로토콜
계층 |
프로토콜 |
응용 계층 |
HTTP, DNS, FTP, SMTP, POP3, 기타 프로토콜 |
전송 계층 |
TCP, UDP |
인터넷 계층 |
IP |
데이터 링크 계층 |
이더넷 |
물리 계층 |
전기 신호 변환 |
- 전송 계층
- 전송계층은 응용계층으로부터 메시지를 받아 전송계층 패킷으로 캡슐화하여 전송해준다
- 이 계층에서의 프로토콜은 TCP, UDP가 있다!
TCP
- 특징
- Segment를 보낸다
- 연결성, 신뢰성 프로토콜이다 = 두 호스트의 전송 계층 사이에 논리적 연결을 한다
- 연결성을 위해서 3 way handshake (+4 way handshake) 방법을 사용한다
- 신뢰성을 위해서 1) 흐름 제어, 2) 오류 제어, 3) 혼잡 제어 등을 제공한다.
- 1) 흐름 제어 : 데이터를 보내는 속도와 데이터를 받는 속도의 균형을 맞추는 것
- 2) 오류 제어 : 훼손된 segment의 감지 및 재전송, 손실된 segment의 재전송, 순서가 맞지 않게 도착한 segment를 정렬하고 중복 segment 감지 및 폐기
- 사용 목적
- 데이터의 순서가 중요하고, 오류가 없어야 하며, 중복이 없는 것이 중요한 통신을 위해 사용됨
- TCP Header
- TCP의 통신 과정 (+ 3 way handshake , 4 way handshake)
- 1. Connection Setup (3 way handshake)
- 1) Syn : 클라이언트가 서버에게 접속을 요청하는 SYN 패킷 보냄
- 2) Syn+Ack : 서버는 요청을 수락하는 ACK를 포함하여 SYN+ACK 패킷을 클라이언트에게 발송
- 3) Ack : 클라이언트가 이것을 수신한 후, 다시 ACK를 서버에게 발송하면 연결이 이루짐
- 2. Data Transfer
- 3. Connection Termination (4 way handshake)
- 1) Fin : Client process에서 active close를 하면, client tcp에서 FIN 세그먼트 보냄
- 2) Ack : Server는 FIN 세그먼트를 받았다는 응답에 대한 ACK를 client로 보냄
- 3) Fin : Server process로부터 passive close를 받으면 server tcp에서 FIN 세그먼트를 client TCP에게 보넴
- 4) Ack : Server tcp가 ACK를 받게 되면 연결이 종료
UDP
- 특징
- Datagram을 전송한다
- 비연결성, 비신뢰성 프로토콜
- 두 호스트의 전송 계층 사이에 논리적 연결이 필요 없다 (TCP의 제어 없음 )
- 제대로 전달 되었는지 확인하지 않는다 -> 비신뢰성
- 사용 목적
- UDP Header
+) 그냥 궁금해서 ... 게임 서버는 ?
- 인게임에서의 채팅은 TCP겠고, 나머지는 빠르게 작동해야 하니 UDP 아닐까?
Ref.
https://velog.io/@hyungzin0309/%EA%B2%8C%EC%9E%84%EC%84%9C%EB%B2%84%EB%A1%9C-%EC%95%8C%EC%95%84%EB%B3%B4%EB%8A%94-UDP%EC%99%80-TCP-%EC%B0%A8%EC%9D%B4%EC%99%80-%EC%82%AC%EC%9A%A9%EC%83%81%ED%99%A9