HTTP 웹 지식

인터넷 네트워크2 (TCP, UDP)

귀요미찰쓰 2022. 1. 4. 09:57
728x90
반응형
반응형

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

프로토콜 계층

- 우리가 사용하는 웹 브라우저, 게임, 채팅 프로그램 같은 웹 애플리케이션들이 애플리케이션층에 존재

- 그 밑에 OS가 있고,

- 그 다음로는 네트워크에 직접 접근하고 있는 LAN 드라이버와 LAN 카드같은 네트워크 인터페이스가 존재하고있다.

 

 

채팅 프로그램으로 Hello, world!를 보내고 싶을 경우

1. Socket 라이브러리를 통해서 OS 계층에 Hello, world!라는 내용을 보냄.

2. OS 계층에 TCP 생성하고, Hello, world! 메시지에 TCP 정보를 씌운다.

3. 그리고 그 밑에 TCP 정보 위에 IP 정보를 씌운다.

 

 

 

TCP(Transmission Control Protocol) 특징

 

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

- 데이터 전달 보증

- 순서 보장

 

- 신뢰할 수 있는 프로토콜

- 현재는 대부분 TCP 사용

 

 

TCP 3 way handshake

1. 클라이언트에서 서버로 SYN이라는 메시지를 보냅니다.

2. 서버가 그걸 받으면 클라이언트에 수락한다는 표시로 ACK를 보내준다. 그리고 자신도 SYN 연결해달라고 SYN 보낸다.

3. 그걸 받은 클라이언트는 알겠다고 마지막으로 ACK를 보낸다.

 

위에서처럼 한마디로 SYN는 요청하는 것이고 ACK는 그 요청에 대한 수락이다.

 

 

* 3 way handshake에 관해서 중요한 것!

3 way handshake을 통한 연결은 완전히 연결히 된 것은 아니다!

논리적인 가상 연결일뿐,  두 컴퓨터끼리 SYN, SYN  + ACK , ACK를 주고 받은 후 연결 되었다는 것만 알고 있는 것이지 중간의 수많은 서버에 해당하는 노드들을 다 거쳤는지는 모른다. 그냥 우리끼리만 논리적으로 연결히 되었구나라고만 생각하는 것이다.

 

 

데이터 보증

- 클라이언트에서 서버로 데이터를 전송하면

- 그러면 서버에서 데이터를 잘 받았다고 클라이언트에 전송한다.

 

 

순서 보장

예를 들어서 패킷을 1, 2, 3 순서대로 전송을 해준다. 그런데 서버에 패킷이 1, 3, 2 순서대로 도착한다. 근데 만약 그렇게 오면 원래 와야하는 순서말고 다른 순서대로 도착한 것이겠죠. 그러면 원래 순서대로에 맞게 패킷1 다음으로 2번부터 다시 보낸다. 이 것들이 가능한게 TCP/IP 패킷 정보 때문이다.

 

위 사진처럼 보면 TCP 정보 안에는 전송제어 정보 순서 정보 검증 정보가 추가로 되어있어서 가능한 것이다.

그래서 TCP를 신뢰할 수 있는 프로토콜이라고 말할 수 있는 것이다!

 

UDP(User Datagram Protocol) 특징

- 기능이 거의 없다.

- 연결지향 - TCP 3 way handshake X

- 데이터 전달 보증 X

- 순서 보장 X

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

 

 

위에 있는 것들을 정리하자면, IP와 거의 같다. 그냥 IP에 PORT라는 것이 추가된다. 애플리케이션에 추가 작업이 필요하다.

 

반응형

'HTTP 웹 지식' 카테고리의 다른 글

HTTP 기본1(모든 것이 HTTP, 클라이언트 서버 구조)  (0) 2022.01.06
웹 브라우저 요청 흐름  (0) 2022.01.06
URI  (0) 2022.01.06
인터넷 네트워크3 (PORT, DNS)  (0) 2022.01.06
인터넷 네트워크1 (IP)  (0) 2022.01.03