[네트워크] HTTP 와 TCP, UDP (-ing)

E woo·2023년 10월 29일
0

네트워크

목록 보기
6/12
post-custom-banner

HTTP

7 계층, 애플리케이션 계층 프로토콜로 HTML 문서를 교환하기 위한 요청과 응답 메세지들을 정의한다.

HTTP 는 data를 메세지로 바꾸고 메세지를 Code (2진수) 로 바꾼다.

www.naver.com 은 도메인 네임으로 도메인 네임의 url을 입력한 경우
index.html 을 불러와 가장 기본인 홈페이지를 보여주게 되는데

우리(클라이언트)는 웹페이지를 가지고 있지 않으므로 웹 서버에게 GET 요청을 통해
네이버 페이지를 받아와야 하는데 이때 웹 서버의 주소는 DNS 서버에서
도메인 네임에 해당하는 IP주소를 얻어와 목적지로 설정해야 한다.

따라서 DNS 서버와의 DNS query 와 reply 가 필요하고 이 과정에서 ARP req/res 가 일어나게 된다.

HTTP 통신을 위한 7계층 데이터 (GET, 메세지) 와 3계층 IP, 이전에 배운 ARP로 2계층 MAC 주소 를 얻었지만 4계층 옷은 얻지 못하여 완전한 캡슐레이션이 되지 못하였다.

그럼 HTTP 통신을 위한 4계층의 옷인 TCP에 대해 알아보자.

TCP와 UDP

4계층 프로토콜에는 TCP 와 UDP 가 존재한다.

7계층의 애플리케이션이 생성하는 데이터의 성격과 통신 환경에 따라
TCP 나 UDP 중 하나를 선택하게 된다.

비교 필드TCPUDP
메세지 길이긴 경우짧은 경우
HTTP (HTML) FTP (모든) SMTP (이메일) telnet OS 생성 파일DNS DHCP SNMP (네트워크 관리) SYSLOG (네트워크 관리)
통신 단말 간의 거리먼 경우짧은 경우
HTTP/FTP/SMTP/telnetDHCP/SNMP/SYSLOG/DNS
실시간/비실시간비실시간실시간/비실시간
HTTP/FTP/SMTPVoIP
유니케스트/멀티캐스트/브로드캐스트유니캐스트만유니캐스트/멀티캐스트/브로드캐스트
HTTP, FTP, SMTP 등 대부분의 애플리케이션 계층 프로토콜멀티캐스팅/브로드캐스팅/애플리케이션 계층 프로토콜

7계층에서 내려온 코드를

TCP 는 자른다 프로토콜 → 공유

UDP 는 안자른다 프로토콜 → 독점


TCP 는 3-way handshake 필요, connection oriented protocol

UDP 는 없음, connectionless protocol

  • TCP 3 - way HandShake

긴 파일 보낼때 TCP를 선택해야 하는 이유

긴 파일을 한번에 보내게 될 경우 그렇게 긴 파일을 보내는 동안 해당 연결이
계속 유지되고 이를 처리하기 위한 시간이 걸리게 된다.

즉 하나의 긴 파일이 끝나기 전까지 해당 연결이 독점되므로
이는 네트워크의 성능을 저하시키므로

긴 파일을 보낼 때는 나눠서 보낼 수 있는 TCP 를 사용하게 된다.

**자세한 이유는 찾아보기**

위에서 배운 HTTP 는 4계층 프로토콜로 TCP 를 사용하므로
HTTP 의 GET 이전에 TCP 의 3-way handshake로 웹 서버와 연결이 된 후 HTTP 통신이 가능하다.

그러나 HTTP 는 7계층으로 4계층의 TCP 가 발생하는지도 모르고 관여하지도 않는다.


  • 참고 자료

https://velog.io/@xx0hn/CS-Network-TCP-3-way-Handshake

profile
뒘벼
post-custom-banner

0개의 댓글