'해당 내용은 김영한 개발자님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 바탕으로 정리한 내용입니다.'

 

PORT

server에 n개의 활동이 진행중일 때

PORT는 위의 그림처럼 서버에 게임과 뉴스기사 홈페이지의 서비스가 동시에 이루어지고 있을 때, 클라이언트가 원하는 서비스를 선택할 수 있는 식별 방법이 될 수 있다. 그래서 기존 TCP 세그먼트를 보면 출발지 PORT, 목적지 PORT가 있는 것을 알 수 있었는데, 이것을 통해 TCP/IP가 출발지 IP, 목적지 IP, 출발지 PORT, 목적지 PORT로 원하는 서비스에 잘 도착할 수 있다.

 

TCP/IP, PORT가 헷갈린다면 IP를 동 PORT가 호수 라고 생각하자
예) 111동(주소) 101호(PORT)

 

DNS(Domain Name System)

IP 주소가 인터넷에서 컴퓨터들을 식별하고 있지만, 127.0.0.1와 같은 IP주소는 우리와 친숙하지 않다. 게다가 이용해야 할 사이트들이 많다면 해당 사이트들의 IP주소들을 다 기억하고 있어야 한다.

DNS는 우리가 접속하고자 하는 사이트들을 쉽게 기억할 수 있게 한다.

 

DNS 과정

원하는 사이트를 검색하면 DNS에서 사이트에 해당하는 IP 주소를 반환하여 사이트가 열리도록 하고 있다.

DNS는 .을 기준으로 third-level-domain.second-level-domain.top-level-domain 으로 구성되어 있다.

TLD(Top-level-domain:최상위 도메인)는 일반 최상위 도메인인 .com, .kr과 같은 국가 코드 최상위 도메인으로 구성되어 있다. second level domain은 회사나 기업의 등록명으로 구성되어 있다. 가장 앞인 third level domain은 서브도메인으로 불리는데 다중의 사이트를 만들고 연결할 때, 독립적으로 사용할 수 있다. 예를 들어 m.doyaji.com, www.doyaji.com 모두 같은 사이트로 들어가는 것처럼 말이다.

 


 

1) 참고목록 : 

김영한 - 모든 개발자를 위한 HTTP 웹 기본 지식

https://www.khanacademy.org/computing/computers-and-internet/xcae6f4a7ff015e7d:the-internet/xcae6f4a7ff015e7d:web-protocols/a/domain-name-system-dns?modal=1

'Web > HTTP' 카테고리의 다른 글

[HTTP] IP, TCP, UDP  (2) 2022.09.30

'해당 내용은 김영한 개발자님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 바탕으로 정리한 내용입니다.'

 

Client - Server 간의 관계

 

IP(Internet Protocol)

 

송신 호스트와 수신 호스트가 정보를 주고 받는 데 사용하는 정보 위주의 유약이다. 

IP 패킷**은 출발지 IP, 목적지 IP, 메세지 넣어 목적지 IP까지 노드가 전달한다.

 

다만, 이 IP 패킷은 몇가지의 문제점을 가지고 있다.

  1. 메세지가 길어질 경우 여러 IP 패킷으로 분할하게 되는데, 이 패킷들이 목적지까지 도착하는데 이동 경로가 달라지게 되므로 순서 없이 도착할 수 있다. 
  2. 물리적 계층 혹은 중간에 서버들이 끊김으로 인해 패킷이 손실되 버려 의미 있는 메세지로 결합하는 것이 불가능해질 수 있다.
  3. 우발적인 재 전송으로 인해 패킷이 중복 될 수 있다.

 

이러한 문제를 처리할 수 있는 더 높은 수준의 프로토콜인 TCP(Transmission Control Protocol)로 해결이 가능하다.

 

 

TCP(Transmission Control Protocol) / UDP(User Datagram Protocol)

 

TCP, IP 패킷 구조 - https://www.khanacademy.org/computing/computers-and-internet TCP 글 참조

 

TCP(Transmission Control Protocol)은 패킷의 안정적인 전송을 보장하기 위해 IP위에 사용되는 전송 프로토콜이다.

TCP 세그먼트는 IP 패킷 안에 있는데, 출발지 PORT, 목적지 PORT, 전송제어, 순서, 검증정보 등이 들어가 있다.

 

TCP/IP로 패킷 전송하는 과정은 다음과 같다.

TCP/IP 패킷 전송 과정 - 3 way handshake

  1.  SYN, 동기화할래? 
    고유한 임의 번호가 포함된 SYN 패킷 또는 세그먼트를 서버에 보낸다.
  2. ACK + SYN, 좋아!
    서버가 해당 세그먼트를 수신한 경우 클라이언트 시퀀스 번호에 + 1을 더한 ACK+SYN 패킷에 반환하여 동의한다.
  3.  ACK, 확인!
    서버의 시퀀스 번호에 + 1을 더한 값을 ACK 패킷에 담아 전송하는데 이때 서버에 데이터 전송 시작할 수 있다.

순서가 잘못된 패킷 확인

수신자는 지금까지 확인한것보다 높은 시퀀스 번호 확인하면 적어도 하나의 패킷이 누락되었음을 알 수 있다.

그리고 다음 번호가 예상되는 시퀀스 번호로 발신자에게 문제가 있음을 알린다.

이렇게 누락된 패킷은 이동하는 도중에 분실되거나 혹은 다른 패킷보다 늦게 도착할 수 도 있는데 발신자는 수신자의 응답에 따라 패킷을 재전송한다. 재 전송시 손실되지 않은 패킷일 경우 수신자가 중복 패킷 버릴 수 있다.

 

 

UDP(User Datagram Protocol)

TCP가 신뢰할수 있는 프로토콜이라 많이 사용하긴 하지만, 내가 최적화를 할 수 있다고 한다면 UDP를 사용한다.

UDP는 IP랑 큰 차이가 없으나 PORT를 체크할 수 있다는 점에서 IP와 다른 차이점이 존재한다.

 

 


1) 패킷(Packet) : 컴퓨터 네트워크가 전달하는 데이터의 형식화된 블록

2) 참고목록 : 

김영한 - 모든 개발자를 위한 HTTP 웹 기본 지식

https://www.khanacademy.org/computing/computers-and-internet/xcae6f4a7ff015e7d:the-internet/xcae6f4a7ff015e7d:transporting-packets/a/transmission-control-protocol--tcp

'Web > HTTP' 카테고리의 다른 글

[HTTP] PORT, DNS  (1) 2022.09.30

+ Recent posts