본문 바로가기
CS/네트워크

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

by 서현 SEOHYEON 2023. 1. 9.

🟡 인터넷 통신

두 PC가 통신할때, 어떻게 통신할까?

- 가깝다면 케이블로 연결해서 통신하는 방법이 존재.

그러나 거리가 멀다면?

- 인터넷을 사용하여 통신.

- 두 PC 사이에 매우 많은 노드들이 복잡하게 존재하고, 여러 노드들을 거쳐 목적지에 도착하여 통신하는 형태

 

 

🟡 IP(인터넷 프로토콜)

각 PC는 IP주소를 가지고 있고, 이 IP주소를 가지고 통신한다.(IP: 논리적 주소)

- 지정한 IP 주소에 패킷(Packet)이라는 통신 단위로 데이터를 전달

- IP 패킷은 출발지 IP, 목적지 IP 등으로 구성 됨

(+ 요청과 응답시 서로 다른길로 전달이 가능하다. 무조건 같은 루트를 사용하는 것이 아니다.)

 

IP 프로토콜의 한계점

- 비연결성: 패킷을 받을 상대가 없거나, 서비스가 불능 상태여도 데이터를 전송

- 비신뢰성: 중간에 패킷이 소실되거나, 순서대로 안 올 가능성 존재(패킷마다 다른 루트 사용 가능)

- 프로그램 구분: 한 PC에서 게임도 하고, 음악도 듣고... 그렇다면 어느 애플리케이션으로 데이터를 전송해야 하나?

 

 

🟡 TCP

앞서 언급한 IP의 문제점을 TCP가 해결

 

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

TCP가 IP를 보완해주는 역할

 

 

프로토콜 계층

 

TCP 패킷에는 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보 등이 존재한다. (IP만으로는 해결이 안 됐던 것들)

 

TCP 특징

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

- 연결지향: TCP 3 way handshake(논리적 연결)

- 데이터 전달 보증(누락되면 알 수 있음)

- 순서 보장(잘못오면 재요청)

 

 

TCP 3 way handshake

- 논리적 연결(가상 연결)

- 전용 랜선이 생긴다는 것이 아니다.

 

 

🟡 UDP

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

- 기능이 거의 없음

- 연결지향 X

- 데이터 전달 보증 X

- 순서 보장 X

- IP에 PORT, 체크섬 정도만 추가됨

 

- 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름(TCP는 시간이 느리다)

 

 

🟡 PORT

위에서 TCP 패킷이 출발지 PORT, 목적지 PORT 정보를 갖고 있다고 언급

- PORT: 같은 IP 내에서 프로세스 구분

- 하나의 PC에서 게임, 음악 감상, 웹 브라우저 등을 사용할 때 각 프로세스가 PORT 번호를 다르게 갖고 있음

- IP는 아파트, PORT는 호수라고 생각하면 된다

 

- 0~65585 할당 가능

- 0~1023: 잘 알려진 포트, 사용하지 않는 것이 좋음

 

 

🟡 DNS

IP는 기억하기 어렵고, 변경될 수 있다.

 

DNS

도메인 네임 시스템(Domain Name System)

- 전화번호부와 같다고 생각

- 도메인 명을 IP주소로 변환

 

 


이 글은 인프런 [모든 개발자를 위한 HTTP 웹 기본 지식] 강의를 들으며 학습한 내용을 토대로 작성되었습니다.

 

댓글