본문 바로가기
  • 시 쓰는 개발자
CS 개념/네트워크

HTTP 웹 기본 지식 (1) - IP, TCP, UDP

by poetDeveloper 2024. 5. 7.

김영한님의 HTTP 웹 기본지식을 들으며 정리하였습니다.

 

IP (Internet Protocol)

  • 지정한 IP 주소에 패킷이라는 단위로 데이터 전달
  • 패킷 : 패키지 + 버킷. 즉, 데이터 보따리라고 생각
  • 데이터 송수신에서 송신과 수신은 같은 길이 아니어도 됨. 즉, 데이터 주고받을 때 왔던 길 그대로 되돌아가는 게 아니어도 상관 없음.

IP의 한계

  • 비연결성 : PC가 꺼져있어도, 못받는상태여도 상관없이 데이터 보냄.
  • 비신뢰성 : 중간에 패킷 사라지는 것이나, 패킷 오는 순서 보장 안해줌.
    • 패킷 크기가 크면 끊어서 보내주는데(1500바이트 정도), 순서 보장 안해주고 & 전송되는 노드들이 고정이 아니라서 패킷 순서가 꼬일 수 있음.

TCP의 특징 (Transmission Control Protocol)

TCP가 출발지와 목적지 PORT, 전송 제어, 순서, 검증 정보 등을 추가해줘서 IP의 단점을 보완해줌.

  1. 연결지향 (3way handshake) : 서로 통신 가능한 상태임을 확인하고(가상 연결) 데이터 보냄. 단, 이것은 논리적 연결일 뿐 직접적인 연결을 의미하는 건 아님.
    •   첫 번째 통신 : SYN 보내서 통신하자고 연락
    •   두 번째 통신 : ACK 보내서 잘 받았음을 알림. 오케이 연결하라는 의미로 SYN 보냄
    •   세 번째 통신 : ACK 보냄. 이때 요즘은 기술 좋아져서 ACK 보내면서 바로 데이터 함께 보내줌.
    •   TCP는 요청, 응답 과정에서 주기적으로 ACK를 교환한다. 따라서 어느 한쪽이 통신 불가능한 상태가 되면 더이상 절차를 진행할 수 없다. 만약 통신불능이 되면 오류 복구를 위한 몇번의 신호를 더 보내고, 이 신호에 대한 응답이 오지 않으면 통신을 종료한다.
  2. 데이터 전달 보증 : 메세지 누락되면 누락된 것을 인지할 수 있음. 데이터 잘 받았다는 ACK덕분에 전달이 보증됨.
  3. 순서 보장 : 순서 잘못되면 몇번째 패킷부터 다시 보내라고 알려줌. GBN, SR같은 방법 사용.

UDP의 특징 (User Datagram Protocol)

  • 기능이 거의 없음. 위에서 언급한 TCP의 3가지 기능 다 없고 IP랑 거의 같지만 Port와 체크섬 정도만 추가됨.
  • Port : 서버 내에서 돌아가는 애플리케이션을 구분. 하나의 IP 내에서 이것은 게임용, 이것은 음악용을 구분해줌. IP가 아파트 주소라고 하면 Port는 아파트의 동.호수라고 생각
  • 데이터 전달이나 순서 보장같은 것은 없지만 단순해서 빠르다.