네트워크

인터넷 네트워크 정리

Rudtjs 2022. 8. 4. 12:33

김영한 선생님 강의 pdf 자료

 

인터넷 네트워크 

웹이나 HTTP는 인터넷 네트워크 안에서 일어난다. 인터넷 망을 통해 두 컴퓨터가 통신하기 위해서 여러 노드를 거치는데, 이 요청을 전달하기 위한 방법이 IP(인터넷 프로토콜)이다.

 

IP 인터넷 프로토콜 역할

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

IP 패킷 정보

패킷 단위로 데이터를 전달한다. 즉, 전송 데이터와 클라이언트 IP, 서버 IP 등을 함께 묶어 패킷으로 만든 후 전달한다.

 

IP 프로토콜의 한계

  • 비연결성: 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
  • 비신뢰성: 중간에 패킷이 사라지거나 순서대로 도착하지 않을 수 있다.
  • 프로그램 구분: 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이라면 혼동된다.

TCP

IP 프로토콜의 한계를 극복하기 위해 나온 전송 제어 프로토콜이다.

프로토콜 계층

  • 연결 지향 -  TCP 3 way handshake(가상연결)을 통해 연결을 확인
    • TCP 3 way handshake: 클라이언트가 서버에게 SYN(접속 요청)을 보내면 서버가 다시 클라이언트에게 SYN(접속 요청)과 ACK(요청 수락)을 함께 보냅니다. 그러면 클라이언트는 서버에서 보낸 SYN(접속 요청)에 대한 ACK(요청 수락)을 보내서 데이터가 전송할 준비가 되었다는 것을 알려줍니다.
  • 데이터 전달 보장
  • 패킷의 도착 순서 보장

 

UDP 

사용자 데이터그램 프로토콜이라는 뜻으로 TCP와 달리 비연결형 프로토콜이다.

  • TCP의 3 way handshake와 같은 기능이 없어 연결 지향 프로토콜이 아니다.
  • 데이터 전달을 보장하지 않는다.
  • 순서를 보장하지 않는다.
  • TCP보다 속도가 빠르다.

UDP는 비연결형 프로토콜이기 때문에, 연결을 설정하고 해제하는 과정이 존재하지 않습니다. 서로 다른 경로로 독립적으로 처리함에도 패킷에 순서를 부여하여 재조립을 하거나 흐름 제어 또는 혼잡 제어와 같은 기능도 처리하지 않기에 TCP보다 속도가 빠르며 네트워크 부하가 적다는 장점이 있지만 신뢰성 있는 데이터의 전송을 보장하지는 못합니다. 그렇기 때문에 신뢰성보다는 연속성이 중요한 서비스 예를 들면 실시간 서비스(streaming)에 자주 사용됩니다.

 

PORT

하나의 컴퓨터는 하나의 IP주소를 가지고 있습니다. 그런데 하나의 컴퓨터에서 게임이나, 화상통화 등 여러 작업을 동시에 진행하고 싶을 때는 여러 서버에서 보낸 응답들이 하나의 IP로 응답되기 때문에 게임에 대한 응답인지, 화상통화에 대한 응답인지 클라이언트는 구분할 수가 없습니다. 이를 해결하기 위해 나온 것이 PORT입니다.

 

TCP/IP 패킷 정보

 

위의 사진을 보면 출발지 PORT와 목적지 PORT를 이용하여 요청과 응답을 하나의  IP로 구분할 수 있게 된다.

 

DNS

DNS는 Domain Name System의 약자로 IP 네트워크에서 사용하는 시스템이다. 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행할 수 있도록 해준다.

 

예를 들어 구글에서 DNS서버에 IP주소와 도메인 명을 등록했다고 하자.

클라이언트가 google.com을 입력하면 DNS서버로 요청을 하게 된다. 그러면 DNS서버는 등록된 도메인명에 맞는 IP주소를 반환해주고 클라이언트는 구글 IP주소로 서버에 접속하게 된다. 

 

출처

UDP 특징 

인터넷 네트워크 강의

 

'네트워크' 카테고리의 다른 글

HTTP 정리 - 캐시와 조건부 요청  (0) 2022.08.19
HTTP 정리 - 상태코드와 헤더  (0) 2022.08.16
HTTP 정리 - 기본  (0) 2022.08.10