[인터넷 네트워크]IP/TCP/UDP/PORT/DNS

heeee·2021년 1월 26일
0

HTTP

목록 보기
1/5
post-thumbnail

📌인터넷 통신

클라이언트와 서버 사이에 통신할 때, 인터넷망을 통해서 메세지를 보내게 됨
인터넷은 단순하지 않다. 수많은 중간 노드들을 거쳐 안전하게 넘어가야함


📌IP(인터넷 프로토콜)

지정된 IP 주소에 데이터 전달할 때, 패킷이라는 통신 단위로 데이터를 전달한다.
이때, 메세지를 그냥 보내는게 아니라 IP 패킷이라는 규칙이 있음

출발지IP, 목적지IP, 기타.. 이러한 정보가 담긴 IP 패킷을 만들어서 인터넷망에 클라이언트가 이 패킷을 던지면 인터넷망안의 노드들이 서로 그 패킷을 던지다가 결국 목적지 IP 주소까지 도달하게 된다.

서버에서 클라이언트로 응답하는 과정도 동일(이때, 지나는 노드(경로)는 서로 다를 수 있다.)

한계:

-비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송(클라이언트는 대상 서버가 패킷을 받을 수 있는 상태인지 모름)
-비신뢰성 : 중간에 패킷이 사라지면? 패킷이 순서대로 안오면?(패킷 소실)
패킷의 길이가 길면 나뉘어서 전송이 되는데, 이 때 여러 패킷들이 중간에 다른 노드를 탈 수 있다.=> 최종적으로 순서가 바뀔수있음(Hello,world!==>word!Hello,)
-프로그램 구분 : 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면?(인터넷으로 음악도 듣고, 게임도 하고 있을때)

💡이러한 문제로 인해 TCP 등장!


📌TCP/UDP

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

프로토콜 계층

TCP 패킷의 경우, 출발지와 목적지의 PORT, 전송제어, 순서, 검증정보가 담김

TCP 특징

  • 연결지향:두 컴퓨터가 연결되었는지
    3way handshake하면 클라이언트,서버간에 믿을수있음(논리적 연결)
    ->중간에 수많은 노드를 거치는데 그 노드들이 연결이 됐는지는 모르고, 그냥 논리적으로 연결이 된거라고 이해하면 됨
  • 데이터 전달 보증
    데이터를 받으면 서버가 데이터를 받았다고 ACK해주기 때문
  • 순서 보장
    만약 패킷1,2,3순으로 보냈는데 1,3,2 순으로 받을경우 패킷 2부터 다시 보내라고 서버가 클라이언트에 요청하게됨

UDP 특징
하얀 도화지(기능 거의 없음)

  • IP와 거의 같다 +PORT +체크섬 정도만 추가
  • -애플리케이션에서 추가 작업 필요
  • 최근에 UDP 뜨고있음. handshaking하는 과정 줄이고 최적화하기위해서
    -체크섬:메세지에 대해 제대로 왔는지 검증

📌PORT

같은 ip 내에서 프로세스를 구분해준다
ip로 여러 패킷이 올때, 구분해주는것(게임용패킷,음악용패킷..)

한번에 둘 이상 연결해야 한다면?

포트 번호를 달리 하여 같은 IP내에서 프로세스를 구분하게 된다.

ip:아파트(하나의 서버), 포트:몇동몇호


📌DNS

IP는 기억하기 어렵고, 변경될 수 있다. => DNS(도메인 네임 시스템)
전화번호부와 같은 의미로 생각

출처 : 인프런 모든 개발자를 위한 HTTP 웹 기본 지식

0개의 댓글