HTTP/HTTP강의

[모든 개발자를 위한 HTTP 웹 기본] TCP, UDP

비뀨_ 2022. 9. 19. 19:09

IP 프로토콜에서 발생되었던 문제들을 해결하기 위해서 TCP가 나타났다.

( UDP는 해결은 안 되지만 도와주는 부분이 있음)

 

 

네트워크를 공부하면 OSI 7 계층이란 것을 본 경험이 있을 것이다.

TCP/ IP model에서는 그림과 같이 OSI 계층을 묶어서 4 계층으로 만들었다.

 

위의 그림은 이해가 안가기 때문에 아래와 같이 예시를 들게 되면

 

Hello라는 메시지를 보내게 되면 TCP 계층은 TCP 정보를 씌우게 되고 한 칸 내려서 IP계층으로 보내게 되고

TCP 정보를 씌운 데이터에 IP 정보를 위에 씌우게 된다. 이런 식으로 LAN 드라이버까지 내린 다음 인터넷으로 보내게 된다.

 

**웹 개발할 때는 물론 다 배우면 좋지만 그러면 밑도 끝도 없기 때문에 IP 프로토콜까지 깊이 있게 공부하면 된다.**

 

 

TCP / IP

 

IP 패킷 안에 TCP에 대한 정보가 들어간다고 위에서 말했다.

내용은 위와 같은 정보들이 들어가 있고 IP 프로토콜의 한계점을 위 정보들로 해결하게 된다.

 

TCP의 특징

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

  • 연결 지향 - TCP 3 way handshake (가상 연결)
    • 연결을 하고 메시지를 보냄 (서버가 꺼졌을 때 보내는 것 해결)
  • 데이터 전달 보증
    • 패킷이 누락되면 알 수 있음
    • 데이터를 전송하면 데이터를 잘 받았다는 메시지를 보내게 된다.
  • 순서 보장
    • TCP 패킷 안에는 순서 정보가 있기 때문에
      패킷이 순서가 잘못되면 서버가 클라이언트에게 순서가 잘못된 패킷부터 다시 보내라고 요청한다.
  • 신뢰할 수 있는 프로토콜
  • 현재는 대부분 TCP를 사용한다.

 

 TCP 3 way handshake

  1. SYN (synchronized): 서버에 연결 요청을 보냄
  2. SYN + ACK (acknowledge) : 서버에서 '알겠어'라는 메시지를 보내면서 서버 -> 클라이언트로 연결 요청
  3. ACK : 클라이언트도 '알겠어'라고 수락함.

이 방식을 사용하게 되면 클라이언트도 서버를 믿을 수 있고, 서버도 클라이언트를 믿을 수 있게 된다.

3 way handshake를 통해서 연결 한 뒤에 데이터를 전송하게 된다.

 

3 way handshake는 논리적으로 연결된 것이고, 전용 랜선처럼 물리적으로 연결된 것이 아니다!

 

UDP (User Datagram Protocol)

특징

  • 기능이 거의 없음 ( 하얀 도화지에 비유 가능하다.)
  • 연결 지향( TCP 3 way handshake)이/가 아니다
  • 데이터의 전달 보증이 안 된다.
  • 순서가 보장되지 않는다.
  • 단순하고, 빠르다.
  • 결론
    • IP와 거의 같지만 PORT와 Checksum 정도만 추가된 것과 같다.
    • Application에서 추가적인 작업이 필요하다.

 

'HTTP > HTTP강의' 카테고리의 다른 글

DNS 엄청난 기초  (0) 2023.06.07
[모든 개발자를 위한 HTTP 웹 기본] PORT  (1) 2022.09.19
[모든 개발자를 위한 HTTP 웹 기본] IP  (1) 2022.09.19