자바생
article thumbnail
728x90

IP(Internet Protocol)

IP는 우리가 흔히 말하는 IP주소의 그 IP이다.

IP의 역할은

지정한 IP주소에 데이터를 전달한다. 여기서 패킷이라는 통신 단위로 데이터를 전달한다.

 

패킷에는 출발지 IP, 목적지 IP 등이 있고 전송 데이터가 있다.

 

하지만 IP프로토콜은 다음과 같은 한계를 가지고 있다.

 

비연결성

  • 패킷이 도착할 곳의 서버가 없거나, 종료(?)되있어도 패킷을 전송한다.

비신뢰성

  • 중간에 패킷이 사라질 수도 있다
  • 패킷을 1 2 3 순서대로 보냈는데, 2 1 3 이런 식으로 순서가 보장이 안된 체 도착할 수 있다.

프로그램 구분

  • 만약 한 곳에 서로 다른 애플리케이션이 같이 들어올 때 구분지을 방법이 없다

 

TCP UDP

우리는 TCP/IP을 많이 들어보았을텐데, 이것은 프로토콜이 아니라 계층을 뜻한다고 한다.

OSI 7계층이 있는 것처럼 TCP/IP 4계층이 있는 것이다.

애플리케이션 계층 HTTP, FTP 

전송 계층 - TCP, UDP

인터넷 계층 - IP

네트워크 인터페이스 계층

으로 이뤄져있다.

 

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

TCP 특징

 

연결지향(3 handshake)

  • 연결 확인을 한다.

데이터 전달 보증

  • 데이터가 누락될 시 알 수 있음

순서보장

신뢰할 수 있는 프로토콜

 

TCP의 특징을 보면 IP가 가지는 한계점인 비연결성, 비신뢰성, 프로그램 구분을 전부 보완할 수 있는 것 같다.

 

TCP 3 way handshake

TCP의 특징 중에 3 way handshake는 들어보기만 하고 제대로 알지 못해 이번에 제대로 공부해보자라는 생각이 들었다.

개념적으로는 별거 아닌 것 같다.

데이터를 보내려는 곳에 먼저 사전 요청(?) 같이 가상 연결(개념적 연결O, 물리적 연결X)을 시도해본다.

그러면 서버에서 응 나 요청 받았어라고 답장이 온다.

클라이언트는 그 답장을 보고 연결이 잘됐구나하고 알겠어하고 이제 나 데이터보낸다 라는 신호를 마지막으로 보내고

난 뒤에 데이터를 전송하는 것 같다.

내가 이해한 것이 맞는진 모르겠지만 맞는 것 같다.

 

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

UDP 특징

 

연결지향 X

데이터 전달 보증 X, 순서 보장 X

빠름

 

TCP/IP 패킷

TCP/IP 패킷은 아래의 사진과 같이 생겼다.

주황색은 IP 패킷, 초록색은 TCP 세그먼트이다.

TCP에는 IP 패킷과는 다르게 PORT, 전송 제어, 순서, 검증 정보라는 것이 있다.

각각 왜 있는지 이유가 다 있는 것 같다.

 

일단 PORT이다.

IP는 프로그램 구분을 할 수 없다고 했다.

그래서 구분하기 위해 PORT라는 걸 사용한다. 

같은 IP에서 서로 다른 프로세스를 구분하기 위해 1번 프로세스는 1번 포트,

2번 프로세스는 3번 포트로 연결한다고 할 때, 1번 프로세스에 접근하기 위해서는

1번 포트로 들어가면 된다. 그래서 프로그램 구분을 위해 PORT라는 것이 생긴 것 같다.

 

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

DNS도 맨날 들어보기만 했지 자세히 알지 못했다. 하지만 강의를 듣고나서

어려운 게 아니었구나라는 생가이 들었다.

 

DNS는 도메인 명을 IP 주소로 변환한다. 

왜?

항상 IP를 보내기에는 IP주소가 너무 길고, 항상 외우고 다니기 힘들기 떄문이다.

말로하면 어려운데 도메인 명을 google.com IP를 100.200.200.1 이라고 하면

우리는 google.com을 검색하면 IP주소로 변환이 되어 google에 들어갈 수 있게 된다.

 

이걸 DNS라고 하는 것 같다.

 


 

 

728x90
profile

자바생

@자바생

틀린 부분이 있다면 댓글 부탁드립니다~😀

검색 태그