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

mj·2024년 7월 10일
0

CS

목록 보기
1/1

IP (인터넷 프로토콜)


클라이언트 - 인터넷 - 서버
ex)
클라이언트의 IP주소 : 100.100.100.1
서버의 IP주소 : 200.200.200.2
IP주소를 부여하여 데이터를 전달한다.

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

IP패킷에 들어있는 정보
출발주소, 목적주소, 데이터...

IP 프로토콜의 한계

1. 비연결성

예를들어 상대 컴퓨터가 전원이 꺼진 상태라면?
패킷을 보내도 받을수가 없고, 받을 수 있는 상태인지 또는 받았는지 확인할 수 가 없다.

2. 비신뢰성

  • 중간에 패킷이 사라지는 경우
  • 1,2,3 순서대로 와야하는데 1,3,2 순서로 오는 경우

3. 프로그램 구분

예) 인터넷 서칭을 함과 동시에 음악앱으로 음악듣기
같은 IP내에서 통신하는 애플리케이션이 둘 이상일땐 프로그램의 구분이 필요하다.

위와같은 IP프로토콜의 한계를 극복하고자 만들어진것이 TCP이다.

TCP


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

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

  • 애플리케이션 계층 - HTTP, FTP
  • 전송 계층 - TCP, UDP
  • 인터넷 계층 - IP
  • 네트워크 인터페이스 계층
  1. 애플리케이션 계층에서 "Hello, world!" 메시지를 생성
  2. 위의 메시지 데이터를 포함하는 TCP 정보 생성
  3. TCP 데이터를 포함하는 IP 패킷 생성
    ...

위와 같은 방식으로 윗 계층의 정보를 포함하는(감싸는) 데이터를 만들어 아래 계층으로 보낸다.

IP 패킷 정보

출발지IP, 목적지IP, [전송데이터]

TCP/IP 패킷 정보

출발지PORT, 목적지PORT,전송 제어, 순서, ... ,[출발지IP, 목적지IP, [전송데이터]]

TCP의 특징

1. 연결지향 - TCP 3 way handshake

IP에서는 상대가 현재 받을수 있는 상황인지 확인할 수 없었다. TCP에서는 3 Way Handshake로 현재 데이터 전송이 가능한 상태인지 연결을 확인한다.
1) 클라이언트서버 : SYN(접속요청)
2) 서버클라이언트 : SYN + ACK(요청수락)
3) 클라이언트서버 : ACK (와 함께 데이터 전송 가능)

2. 데이터 전달 보증

IP에서는 데이터가 유실되어도 상대가 잘 받았는지 확인할 방법이 없어 다시 보내지도 못했다.
TCP에서는 데이터를 잘 받았는지 확인이 가능하며, 만약 데이터가 손실될 경우 TCP는 이를 감지하고 자동으로 재전송할 수 있다.

3. 순서 보장

패킷1,2,3순서대로 보냈는데 패킷1,3,2 순서로 도착했을 경우 다시 패킷2부터 보내도록 한다.
(프로그램별로 최적화 할 수도 있음. 패킷 1,3,2 도착하면 순서 재조합하여 1,2,3으로 만든다거나...)

UDP


User Datagram Protocol

  • 연결지향 X
  • 데이터 전달 보증 X
  • 순서 보장 X
  • 데이터 전달 및 순서가 보장되지 않지만 단순하고 빠르다.

TCP와 UDP의 차이점

IP와 거의 같다. IP에 PORT와 체크섬 정도만 추가된 프로토콜이다. 3-way handshake 등의 과정이 빠지다보니 TCP보다 헤더의 크기도 작고 속도도 빠른것이 장점이다. 다만, 이러한 기능(신뢰성보장기능)이 빠졌기 때문에 애플리케이션에서 자체적으로 구현할 필요가 있다. 이런 UDP의 단순성을 활용하여 필요한 경우 패킷 손실, 순서, 중복 처리 등을 애플리케이션에서 직접 처리할 수 있다.

PORT


같은 IP 내에서 프로세스를 구분해주는 역할을 한다.

예를들어 한 컴퓨터에서 게임, 화상통화, 웹브라우저 동시에 사용하는 경우, 이 요청이 게임인지 화상통화인지 구분해줄 필요가 있다.

DNS


Domain Name System

  • IP는 기억하기 어렵다.
    ex) 100.100.100.1 외우기 힘들어ㅜ

  • IP는 변경될 수 있다.
    ex) 200.200.200.2 -> 200.200.200.3으로 변경된 경우, 변경된 주소를 모르면 다시 알 방법이 없다.

전화번호부와 같은 역할을 한다. 도메인 명을 IP주소로 변환해준다.

DNS 서버

도메인 명IP
google.com200.200.200.2
abc.com210.210.210.3
  1. 클라이언트DNS서버 : 도메인명 google.com
  2. DNS서버클라이언트 : 응답 200.200.200.2
  3. 200.200.200.2에 접속
profile
일단 할 수 있는걸 하자.

0개의 댓글