CS(computer science)/Computer Network

[인프런 김영한 강의 정리 - 네트워크 http - 1] - 인터넷 네트워크 http

ebang 2023. 1. 30. 23:00

본 게시물은 인프런 강의(김영한 강사님의 '모든 개발자를 위한 http 강의)를 듣고 정리한 메모입니다. 

 

1. internet Network

인터넷 통신

클라이언트가 서버에게 메세지를 보내고 싶을 때, 인터넷을 통해서 서버에 보낼 수 있다.

이때 서버가 멀리있다면, 인터넷망이 해저 케이블을 통하는 등 매우 복잡할 수 있다

2. IP

그래서 IP주소를 통해, 통신을 좀 더 용이하게 할 수 있다:

IP 주소란 인터넷상에 있는 컴퓨터의 고유한 주소로 이것을 바탕으로 인터넷상의 한 컴퓨터에서 다른 컴퓨터로 데이터를 주고 받을 수 있다.

그런데, 이 주소를 이용해 데이터를 주고받는다면 문제가 있다.

데이터를 보냈을 때 제대로 도착했는지 알 수도 없고 데이터의 순서도 보장되지 않는다.

3. TCP와 UDP

이러한 IP주소를 이용한 데이터 송신에 도움을 주는 프로토콜이 바로 TCP/UDP 프로토콜이다.

 

현재는 TCP 프로토콜이 전체 인터넷 송신의 90%가량을 차지하고 있는데,

TCP의 특징은 다음과 같다.

  • 연결지향 : 3 way handshake를 수행한다.
  • 데이터 전달 보증: 중간에 목적지에 도착하지 못했다면, 보낸 측에서 알 수 있다.
  • 순서 보장: 데이터의 순서도 보장된다.
  • 그래서 TCP는 신뢰할 수 있는 프로토콜이라고 불린다. (반면 UDP는 신뢰할 수 없는 프로토콜이다.)

 

1. TCP의 3 way handshake:

SYNC 메세지 보내면 SYNC + ACK 메세지를 서버가 보낸다.

그러면 마지막으로 ACK를 보내는 것으로 완료된다.

가상의 연결이며, 그림으로 표현하면 다음과 같다.

[그림]

 

 

2. TCP의 데이터 전달 보증:

목적지에 도착하면 메세지가 도착하는데, 특정 시간 내에 도착하지 못하면 도달하지 못한 것으로 보고 데이터를 재전송한다.

 

3. TCP의 순서 보장:

순서가 틀린 데이터가 온다면, 역시 확인 메세지를 받지 못하고, 특정 시간 내에 확인 메세지를 받지 못한 서버가 다시 그 데이터부터 다시 보낸다.

 

(다시 보낼 수 있는 지 여부는 네트워크 4 - 멱등과도 관련이 있다. )

 

4.  PORT

동일 IP 주소를 이용하는 기기가 여러 대 일 수 있다. 이때 이 기기들을 구분해주는 것이 포트이다.

IP주소로 서버를 찾고, 포트를 이용해서 서버 안의 애플리케이션을 찾는다고 생각하면 된다.

마치 서버를 찾는 것을 아파트 동을 찾는 것으로, 서버 내에서 애플리케이션을 찾는 것을 아파트 호수를 찾는 것으로 생각하여 비유할 수 있다.

 

5. DNS

사람에게 친근한 www.google.com 같은 이름을 32비트 네트워크 주소로 변환하는 네트워크 기능.

마치 전화번호부처럼 호스트 이름에 해당하는 IP주소가 테이블처럼 구현되어 있다.

호스트 이름은 가변길이의 알파뉴메릭 문자로 구성되므로 라우터가 처리하는데 어려움이 있고, 따라서 호스트는 IP 주소로 변환되는 과정을 거친다.