TIL

핵심프로토콜 TCP/IP

changy0ng 2022. 8. 30. 00:17

프로토콜 : 양측이 상호작용하는 방식에 관한 규칙 정의(매우 정확하게 명시된다)

 

많은 프로토콜 중 두 가지의 핵심 프로토콜이 있는데

 

IP는 인터넷 프로토콜(Internet Protocol)로 개별 패킷의 형식을 지정하고 패킷을 전송하는 방법을 정의

TCP는 전송 제어 프로토콜(Transmission Control Protocol)로 IP 패킷을 데이터 스트림으로 결합하고 서비스에 연결하는 방법을 정의

-> 이 두 프로토콜이 IP + TCP가 되어 TCP/IP라고 한다.

 

게이트웨이 = IP패킷을 라우팅하게 되지만 각 물리적 네트워크에 IP 패킷을 전달하기 위한 고유한 형식 존재

각 게이트웨이는 패킷이 들어오고 나갈때 네트워크 형식과 IP 형식 간 변환을 수행.

 

IP 레벨 위에는 TCP가 안정적인 통신을 제공하기 때문에 사용자는 패킷에 관해 생각할 필요 X -> 우리가 인터넷이라고 생각하는 서비스 = TCP 사용

 

최상단 프로토콜에는 애플리케이션 레벨 프로토콜이 있고 주로 TCP를 기반으로 구현

- 웹, 메일, 파일 전송등의 서비스 제공

 

여러개의 프로토콜 계층이 있는 이 형태에 각각 바로 아래에 있는 프로토콜의 서비스에 의조하고 바로 위에 있는 프로토콜에 서비스를 제공하게 됩니다. 

 

물리 계층 - Physical Layer (PHY Layer)

TCP/IP 프로토콜도 마찬가지로 물리 계층부터 시작합니다. 물리 계층은 링크를 통해 받은 비트들을 프레임에 전달하는 역할을 합니다. 이름은 물리 계층이지만, 다른 장치의 물리적 계층과 직접적인 연결이 아닌 논리적인 연결(logical communication)로도 작동합니다.

 

물리 계층은 전기적, 광학적 신호들을 전송 매체로 이용하여 정보를 전달합니다. 때문에, 비트를 신호로 전환하는 몇몇 프로토콜을 가지고 있습니다.

 

 

데이터 링크 계층 - Data Link Layer

데이터 링크 계층에서는 데이터그램(Datagram)을 가져와 링크를 통해 이동시킵니다. 라우터가 최적의 링크를 찾아 경로를 고르면, 그 경로를 통해 이 데이터그램이 움직이게 됩니다. 여기서 데이터그램은 프레임(frame)이라고 불리는 패킷으로 캡슐화(encapsulates)가 된 채 이동합니다.

 

일부 링크 계층은 완벽한 오류 감지와 수정이 가능한 프로토콜을 지원하기도 합니다. 또는 특별한 감지 없이 오류 수정 기능만 지원하기도 합니다.

 

wired LAN(Ethernet), wireless LAN, wired WAN, wireless WAN(LTE) 등이 데이터 링크의 예시입니다.

 

 

네트워크 계층 - Network Layer

네트워크 계층은 호스트와 호스트간의 통신과 패킷 라우팅(최적의 경로 찾기) 을 담당하는 계층입니다. 비연결 프로토콜을 사용하여 흐름 제어 및 오류 제어, 혼잡 제어 등의 기능이 없습니다. 데이터 전송시 목적지가 되는 소스들의 개수에 따라 일대일 전송을 유니캐스트(Unicast), 일대다 전송을 멀티캐스트(multicast) 라고 부릅니다.

 

유명한 예시로, Internet에서의 네트워크 계층이 바로 인터넷 프로토콜 (Internet Protocol, IP) 입니다. 우리가 알고있는 몇 자리 숫자로 구성된 IP 주소에서의 IP가 인터넷 프로토콜의 준말입니다.

 

전달 및 라우팅 작업에서 IP를 돕는 보조 프로토콜로는 다음과 같은 예시가 있습니다.

 

- ICMP (Internet Control Message Protocol)

- 인터넷 그룹 관리 프로토콜 (IGMP)

- DHCP (Dynamic Host Configuration Protocol)

- 주소 확인 프로토콜 (ARP)

 

전송 계층 - Transport Layer

전송 계층은 응용 계층(Application Layer)에 서비스를 제공하는 역할을 합니다. 이 역할을 수행하는 전송 계층의 프로토콜을 바로 TCP (Transmission Control Protocol) 라고 부릅니다.

 

이 TCP는 연결 지향 프로토콜(Connected-oriented) 입니다. 따라서 흐름 제어나 오류 제어, 혼잡 제어등의 기능을 수행할 수 있습니다.

 

전송 계층에서 사용하는 다른 프로토콜로 UDP (User Datagram Protocol) 이 있는데, 이 프로토콜의 경우 비연결 지향 프로토콜이며 덕분에 아주 적은 양의 데이터만을 통신에 사용해서 빠른 속도를 갖고 있습니다.

 

 

응용 계층 - Application Layer

응용 계층은 최종 사용자간의 논리적인 연결과 프로세스간 통신을 담당합니다. OSI 모델의 응용 계층과 하는 역할은 같습니다. 응용 계층의 대표적인 프로토콜들을 살펴보면 다음과 같습니다.

 

HTTP (Hypertext Transfer Protocol) : 월드 와이드 웹(WWW)에 접근하기 위한 프로토콜

SMTP (Simple Mail Transfer Protocol) : 이메일에 사용되는 메인 프로토콜

FTP (File Transfer Protocol) : 파일 전송에 사용되는 프로토콜

TELNET (Terminal Network), SSH (Secure Shell) : 원격 사이트에 접근하는 프로토콜

SNMP (Simple Network Management Protocol) : 관리자가 지역, 세계 규모의 인터넷을 관리할때 사용하는 프로토콜

DNS (Domain Name System) : 다른 프로토콜이 컴퓨터의 네트워크 주소를 찾기 위해 사용하는 프로토콜

 

 

UDP(User Datagram Protocol) 즉 사용자 데이터그램 프로토콜은 TCP와 같은 레벨의 또 다른 프로그램

-> TCP보다 훨씬 단순하며 양방향스트림이 필요하지 않은 데이터 교환에 사용

-> 몇가지 제한된 기능만 제공을 통해 패킷을 효유럭으로 전송할 용도에 쓰임

 

IP(Internet Protocol) 인터넷프로토콜은 신뢰성없는 비연결형인 패킷 전송 서비스 제공. 

비연결형 = 각 IP 패킷이 자립적이며 다른 IP 패킷과 관계없음(상태를 관리하거나 기억하는 기능이 없기 때문)

신뢰성없는 = 패킷이 잘 전송되는 것을 보장하지 않는 최선형 프로토콜(잘못되면 처리하기 힘들어짐)

-> 엽서 배달같은 느낌

TTL(Time To Live) - TTL은 패킷의 출발지에서 초깃값(40)으로 설정되고 패킷을 처리하는 각 게이트웨이를 거칠때마다 1씩 감소되는 바이트 필드. 카운트가 0으로 내려가면 패킷은 폐기되며 송신자에게 오류 패킷이 보내진다.

 

TCP(Transmission Control Protocol) 전송제어 프로토콜 즉 IP보다 상위 레벨의 프로토콜은 이 신뢰성없는 계층에서 신뢰성 있는 통신을 만든다. TCP는 사용자에게 신뢰성 있는 양방향 스트림 제공. 즉 데이터를 한쪽 끝에 넣으면 반대쪽 끝에서 나오며 전송지연이 적으며 오류 발생 확률도 매우 낮다. 

 

오늘날 TCP/IP는 인터넷상의 트래픽을 대부분 처리하게 된다. 

'TIL' 카테고리의 다른 글

7/31 TIL  (0) 2022.07.31
TIL 및 WIL  (0) 2022.07.24