Develop

인터넷 네트워크 (IP, TCP, UDP, PORT, DNS) 본문

CS

인터넷 네트워크 (IP, TCP, UDP, PORT, DNS)

230801 2024. 11. 12. 21:51

인터넷 네트워크에 대해서 알아보겠습니다.

해당 내용은 인프런 김영한_HTTP웹 기본지식 강의를 참고 했습니다.

 

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

(상단)

애플리케이션 계층 - HTTP, FTP

전송 계층 - TCP, UDP

인터넷 계층 - IP

네트워크 인터페이스 계층

(하단)

 

 

IP(Internet Protocol)

  • IP는 지정한 IP주소에 패킷(Packet)이라는 통신 단위로 데이터를 전달한다.
  • IP패킷에는 출발지 IP, 목적지 IP, 기타 등의 정보와 전송 데이터가 포함된다.

 

IP 프로토콜은 아래와 같이 한계가 있다. 

  • 비연결성 - 대상 서버가 패킷을 받을 수 있는 상태인지 모른 채 패킷이 전송된다. 
  • 비신뢰성 - 통신과정에서 중간에 패킷이 사라지거나, 순서대로 오지않을 수 있다.
  • 프로그램 구분 - 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 2개 이상일 경우

 

이러한 한계를 극복하고자 TCP가 도입됐다.

 

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

  • TCP는 IP의 단점을 보완 하고자 3 way handshake 기법을 통해 가상 연결을 시도한다.
  • 해당 기법은 클라이언트 <-> 서버 간 SYN(접속요청)와 ACK(요청수락)을 3번 주고 받아서 붙여진 명칭이다.
  • TCP는 데이터 전달이 보증되고, 전달 순서 또한 보장되어 신뢰할 수 있는 프로토콜이다.
  • 현재는 대부분 TCP를 사용하고 있다.
  • TCP/IP 패킷에는 IP패킷(출발지IP, 목적지 IP, 기타..)의 정보와 출발지 PORT, 목적지 PORT, 전송제어, 순서, 검증정보와 전송 데이터가 포함된다.

 

이렇게 가상연결을 통해 데이터를 보장하지 않아도되는 동영상 등을 전송하기 위해 사용자들이 비교적 간단한 프로토콜을 원하기 시작했고, 그 니즈에 맞는 UDP를 적용하기도 한다.

 

UDP(User Datagram Protocol, 사용자 데이터그램 프로토콜)

  • UDP는 TCP에 비해 기능이 거의 없지만, 단순하고 빠르다는 장점이 있다.
  • 3 way handshake 미지원, 데이터 전달 미보증, 전달 순서도 미보장된다.
  • 결론은 IP와 유사하지만 PORT와 체크섬이 가능하다.

 

한 IP에 게임이나 음악스트리밍 둘다 통신할 때 프로세스를 구분해주기위해 PORT를 사용한다.

 

PORT

  • 한 IP에서 프로세스별로 포트를 다르게 사용한다.
  • 포트는 0~65535번 까지 할당이 가능하고, 0~1023은 잘 알려진 포트로 사용하지 않는것이 좋다.
  • 그 외 는 아래와 같이 할당해서 사용한다.
    • FTP : 20, 21
    • TELNET : 23
    • HTTP : 80
    • HTTPS : 443

 

IP 주소를 기억하기 어렵기 때문에 DNS를 사용한다.

 

DNS (Domain Name System)

  • IP는 기억하기 어렵고, 변경될 수 있기 때문에 전화번호부 같이 DNS를 이용하여 1:1 매칭을 시켜놓고, URL로 접속할 수 있다.
  • DNS는 도메인명을 IP주소로 변환한다.