본문 바로가기
부트캠프교육중/HTTP, 네트워크

TCP, UDP

by 뭉지야 2023. 3. 8.
728x90


#네트워크 프로토콜 계층은 OSI 7계층과 TCP/IP 4계층으로 나눌수있다.

 

-IP프로토콜 보다 더 높은 계층에 TCP프로토콜이 존재하기때문에 IP의 단점을 보완할수있다.


#TCP/IP4계층은 OSI7 계층보다 먼저 개발되었으며 TCP/IP 프로토콜의 계층은 OSI 모델의 계층과 정확하게 일치하지는 않는다. 
실제 네트워크 표준은 업계표준을 따르는 TCP/IP4 계층에 가깝다.

 

HTTP 메시지가 생성되면 socket을 통해 전달된다.
프로그램이 네트워크에서 데이터를 송수신할수있도록, 네트워크 환경에 연결할수 있게 만들어진 연결부가 네트워크 소켓이다.
그리고 IP패킷을 생성하기 전 TCP세그먼트를 생성한다.
이렇게 생성된 TCP/IP 패킷은 LAN카드와 같은 물리적 계층을 지나기 위해 이더넷 프레임 워크에 포함되어 서버로 전송된다.

 

 

TCP/IP 패킷
- TCP 세그먼트에는 IP패킷의 출발지 IP와 목적지 IP정보를 보완할수있는 출발지 PORT, 목적지 PORT, 전송제어, 순서, 검증 정보 등을 포함한다.

 


#TCP 특징
-같은 계층에 속한 UDP에 비해 상대적으로 신뢰할수있는 프로토콜이다.
-전송제어 프로토콜(Transmission Control Protocol)
-연결지향 -TCP 3 way handshake(가상연결) : 장치들 사이에 논리적인 접속을 성립하기 위하여 3 way handshake를 사용하는 연결지향형 프로토콜이다.
-데이터 전달 보증: 데이터전송이 성공적으로 이루어진다면 응답을 돌려준다. (비연결성을 보완)
-순서 보장: 패킷이 순서대로 도착하지 않는다면 TCP세그먼트에 있는 정보를 토대로 다시 패킷 전송을 요청할수있다. (비신뢰성을 보완)


# TCP 3 way handshake

-먼저 클라이언트는 서버에 접속을 요청하는 SYN패킷을 보낸다.
-서버는 SYN요청을 받고 클라이언트에게 요청을 수락한다는 ACK와 SYN가 설정된 패킷을 발송하고 클라이언트가 다시 ACK으로 응답하기를 기다린다.
클라이언트가 서버에게 ACK을 보내면 이 이후로부터 연결이 성립되며 데이터를 전송할수 있다.
만약 서버가 꺼져있다면 클라이언트가 SYN을 보내고 서버에서 응답이 없기 때문에 데이터를 보내지 않는다.
-현재에는 최적화가 이루어져 ACK를 보낼때 데이터를 함께 보내기도 한다.
-syn은 synchronize, ack는 acknowledgment의 약자이다.

 


#UDP특징
-사용자 데이터그램 프로토콜(User Datagram Protocol)
-하얀 도화지에 비유(기능이 거의 없음)
-IP에 port, 체크섬 필드 정보만 추가된 단순한 프로토콜이다.
(체크섬은 중복검사의 한 형태로, 오류 정정을  통해, 공간이나 시간 속에서 송신된 자료의 무결성을 보호하는 단순한 방법)
-비 연결지향 - TCP 3 way handshake X
-데이터 전달 보증 X
-순서 보장 X
-데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름.
-신뢰성보다는 연속성이 중요한 서비스(실시간스트리밍)에 자주 사용됨.

 

728x90

'부트캠프교육중 > HTTP, 네트워크' 카테고리의 다른 글

HTTP의 특징  (0) 2023.03.09
OSI 7계층 모델  (0) 2023.03.09
IP, IP Packet  (0) 2023.03.07
패킷교환방식  (0) 2023.03.07
HTTP 헤더의 종류와 특징  (0) 2023.03.07