본문 바로가기
프로그래밍/HTTP

TCP UDP

by ILove_NS_MoKa 2023. 10. 10.

인터넷 프로토콜 스택의 4계층

 

애플리케이션 계층 - HTTP,FTP

전송 계층 - TCP, UDP

인터넷 계층 - IP

네트워크 인터페이스 계층

 

 

TCP 특징 전송 제어 프로토콜(Transmission Control Protocol)

• 연결지향 - TCP 3 way handshake (가상 연결)

• 데이터 전달 보증  (클라이언트->데이터보냈음 -> 서버  / 서버->데이터받았음 ->클라이언트)

• 순서 보장

(패킷1, 패킷2, 패킷3 으로 클라->서버 전송 / 서버 패킷1 , 패킷3, 패킷2 를 받으면  패킷 2부터 다시보내라 클라한테 전송)

• 신뢰할 수 있는 프로토콜

• 현재는 대부분 TCP 사용

 

 

 

TCP 소켓으로 클라이언트와서버가 연결되는 과정을 3 way hand shake 라고함

1)     클라이언트는 서버에 접속요청(sync) 하고 클라이언트는 sync_sent 상태가 

2)     서버는 요청수락(sync+ack)하고 서버는 sync_received 상태가 

3)     클라이언트는 서버에 수락확인(ack) 보내고 서버는 established 상태가됨

 

 

TCP소켓 연결을 종료하는 과정을 4 way hand shake 라고함

1)     클라이언트가 서버에 연결을 종료 (fin)플래그를 전송, 클아이언트는 종료신호를 기다리는 상태 fin_wait1

2)     서버는 일단 확인(ack) 했다는 메시지를 보내고 자신의 통신이 끝날때 까지 기다리게함. 서버는 close wait 상태 클라이언트는 종료신호를 기다리겠다는 fin_wait2 상태 전환

3)     서버가 통신이 끝나면 이제 종료해도된다는 (fin) 플래그를 클라이언트에 전달. 서버는 last_ack 상태로 전환, 클라이언트는 time_wait 상태 전환

4)     클라이언트는 연결종료를 확인했다는 응답(ack) 플래그를 보냄. 서버 상태 closed

 

 

UDP 특징 사용자 데이터그램 프로토콜(User Datagram Protocol)

• 하얀 도화지에 비유(기능이 거의 없음)

• 연결지향 X - TCP 3 way handshake X

• 데이터 전달 보증 X

• 순서 보장 X

• 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름

• 정리

• IP와 거의 같다. +PORT +체크섬 정도만 추가

• 애플리케이션에서 추가 작업 필요

 

 

 

'프로그래밍 > HTTP' 카테고리의 다른 글

URI와 웹 브라우저 요청 흐름  (0) 2023.10.11
PORT,DNS  (0) 2023.10.10
인터넷 네트워크  (0) 2023.10.10