Internet Protocol Suite
#
Find similar titles
- 최초 작성자
- 최근 업데이트
Structured data
- Category
- Computer science
Table of Contents
Internet Protocol Suite #
Internet Protocol Suite는 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 통신규약(Protocol)의 모음이다. Internet Protocol Suite 중 TCP와 IP가 가장 많이 쓰이기 때문에 TCP/IP Protocol suite라고도 불린다.
TCP/IP #
TCP/IP는 패킷 통신 방식의 인터넷 프로토콜인 IP(Internet Protocol)와 전송 조절 프로토콜인 TCP(Transmission Control Protocol)로 이루어져 있다. IP는 패킷 전달 여부를 보증하지 않고, 패킷을 보낸 순서와 받는 순서가 다를 수 있다(Unreliable datagram service). TCP는 IP에서 동작하는 프로토콜로, 데이터의 전달을 보증하고 보낸 순서대로 받게 해준다.
그림1 TCP/IP 프로토콜 계층 구조
출처: https://www.microsoft.com/korea/technet/deploy/tcpin01.GIF
TCP/IP 4계층 #
TCP/IP Protocol은 DARPA 모델(TCP/IP를 개발한 미 정보 조직의 이름을 딴 것으로 알려진 네 계층의 개념적인 모델에 맵핑 되어 있다. DARPA 모델의 네 계층은 Application, Transport, Internet, Network Interface이다. DARPA 모델의 각 계층은 OSI(Open Systems Interconnection) 7계층 모델의 하나, 혹은 하나 이상의 계층과 일치한다.
그림2 OSI 7계층과 TCP/IP 4계층 비교
출처: http://cfile23.uf.tistory.com/image/213F623C566BAE253BF7A8
Application Layer #
ISO 7계층에서 5,6,7 계층에 해당되며, 프로그램에서 소켓을 생성하여 원하는 메시지 혹은 데이터를 전송하게 되는데, 이를 응용 계층이라고 한다. 즉 프로그램은 소켓 생성을 운영체제에 요청하게 되고, 해당 요청을 운영체제에서 처리하게 된다. 응용 계층은 정해지지 않고, 응용프로그램에 따라 구조체를 다르게 가지고 있어, 일관성 있는 구조를 제공하지 않고 각 서비스에 필요한 필드로 구성된다. 또한 애플리케이션 계층은 다른 계층의 서비스에 접근할 수 있게 하는 애플리케이션을 제공하고 애플리케이션들이 데이터를 교환하기 위해 사용하는 프로토콜을 정의한다. 여러 가지 애플리케이션 계층 프로토콜이 존재하며 지속적으로 새로운 프로토콜이 개발된다. 가장 많이 알려진 애플리케이션 계층 프로토콜에는 다음과 같은 것들이 있다.
- HTTP(HyperText Transfer Protocol)은 WWW의 Web페이지 파일을 전송하는데 사용된다.
- FTP(File Transfer Protocol)은 상호 파일 전송을 위해 사용된다.
- SMTP(Simple Mail Transfer Protocol)은 메일 메시지와 그에 추가된 첨부 파일을 전송하기 위해 사용된다.
- Telnet(terminal emulation protocol)은 네트워크 호스트에 원격 접속하기 위해 사용된다.
- 프로토콜 : HTTP, FTP, Telnet, DNS, SMTP
또한, 다음과 같은 애플리케이션 계층 프로토콜이 TCP/IP network를 사용하거나 관리하는 것을 도와준다.
- DNS(Domain Name System)은 호스트 이름을 IP 주소로 변환하기 위해 사용된다.
- RIP(Routing Information Protocol)은 IP 네트워크상에서 라우팅 정보를 교환하기 위해 라우터가 사용하는 프로토콜이다.
- SNMP(Simple Network Management Protocol)은 IP 네트워크 관리 콘솔과 네트워크 장비(라우터, 브리지, 지능형 허브)간에 네트워크 관리 정보를 수집, 교환하기 위해 사용된다.
TCP/IP Application을 위한 Application Layer Interface의 예로 Windows Sockets과 NetBIOS를 들 수 있다.
Transport Layer #
ISO 7계층의 3,4계층에 해당되며, 자료의 송수신을 담당하게 된다. TCP/UDP에 대한 구분을 하고 데이터에 대한 제어정보가 여기에 포함된다. Transport 계층은 (Host-to-Host Transport Layer라고도 하는데) Application Layer에 Session과 Datagram 통신 서비스를 제공한다. Transport Layerd의 핵심 Protocol은 TCP와 UDP(User Datagram Protocol)이다.
- TCP는 1대 1의 연결 지향, 신뢰할 수 있는 통신 서비스를 제공한다. TCP는 TCP 연결 확립과 보내진 패킷의 확인, 순서화, 전달 중 손상된 패킷을 복구하는 책임을 진다.
- UDP는 1대 1, 1대다의 비연결 지향, 신뢰할 수 없는 통신 서비스를 제공합니다. UDP는 주로 전달해야 할 데이터의 크기(하나의 패킷으로 보낼 수 있는 데이터와 같은 경우)가 작을 때나, TCP 연결 확립에 의한 부하를 피하려고 할 때, 혹은 상위 프로토콜이 신뢰할 수 있는 전달을 책임지는 경우에 사용됩니다.
- 프로토콜 : TCP, UDP
필드 | 길이 | 설명 |
---|---|---|
출발지 포트 | 2Byte | 보내는 프로그램의 포트 |
도착지 포트 | 2Byte | 상대 프로그램의 포트 |
시퀀스 번호 | 4Byte | 송신측에서 몇번째 바이트까지 보냈는지, 수신에 알림 |
ACK 번호 | 4Byte | 수신측에서 데이터가 몇 바이트째 까지 도착지에 도착 하였는지 송신측에 알림 |
헤더 길이 | 4Bit | 헤더의 전체 크기를 나타냄 |
플래그 | 12Byte | 통신 제어 비트로 앞 3장에서 나옴 |
윈도우 크기 | 2Byte | 송신측에 윈도우 크기를 보내, 바로 처리 가능한 크기를 알림 |
체크섬 | 2Byte | 오류 유무를 검사하기 위한 값 |
긴급 포인터 | 2Byte | 긴급하게 처리할 데이터의 위치를 나타냄, UGR플래그와 함께 사용 |
[표] 전송 계층의 구성 필드
Internet Layer #
OSI에서 3계층에 해당하며, 논리적 주소인 IP를 이용한 노드간 전송과 라우팅 기능을 처리하게 된다. 네트워크 상 최종 목적지까지 정확하게 연결되도록 연결성을 제공하게 된다. 라우터가 이 계층에 해당된다. 인터넷 계층은 Addressing, Packaging, Routing 기능을 제공한다. 인터넷 계층의 핵심 프로토콜은 IP, ARP, ICMP, IGMP 등이다.
- IP(Internet Protocol)은 IP Addressing과 패킷의 분해, 재조합을 책임지는 프로토콜이다.
- ARP(Address Resolution Protocol)은 Internet Layer 주소를 Network Interface Layer의 주소(하드웨어 주소와 같은)로 변환하는 역할을 담당한다.
- ICMP(Internet Control Message Protocol)은 IP 패킷의 전달에 따른 오류나 상태를 리포트하고 진단하는 기능을 제공한다.
- IGMP(Internet Group Management Protocol)은 IP 멀티캐스트(multicast)그룹의 관리를 책임진다.
- 프로토콜 : IP, ARP, RARP, ICMP, OSPF
필드 | 길이 | 설명 |
---|---|---|
버전 | 4Bit | IP 프로토콜 버전으로 IPv4, IPv6가 대표적으로 많이 사용된다. |
헤더 길이 | 4Bit | IP헤더의 길이 |
서비스 타입 | 1Byte | 패킷의 우선 순위 |
전체 길이 | 2Byte | IP메시지 전체 길이 |
ID 정보 | 2Byte | 개개의 패킷의 식별 번호, 일련 번호 |
플래그 | 3Bit | 프래그먼트된것인지 아닌지의 유무를 가림 |
프래그먼트 오프셋 | 13Bit | 프래그 세팅되지 않으면 프래그먼트 된 것으로 여기에 선두로부터 몇번째인지 나타냄 |
생존 기간 | 1Byte | 네트워크 장비를 통과할 수 있는 홉수로 TTL값이 여기에 존재 |
프로토콜 번호 | 1Byte | TCP, UDP, CMP인지를 구분 |
헤더 체크섬 | 2Byte | 오류 검사용 데이터 |
출발지 IP 주소 | 4Byte | 출발지 IP주소 |
도착지 IP 주소 | 4Byte | 도착지 IP주소 |
[표] 인터넷 계층의 구성 필드
Network Access Layer or Network Interface Layer #
OSI의 1,2계층에 해당되며, 물리적 주소인 MAC 주소를 이용하여 패킷을 보낼 곳을 판단하게 된다. 여기에 사용되는 프로토콜로 ARP 등이 해당하며, 스위치와 허브 등이 이 계층에 해당된다. 스위치와 라우터의 차이는 바로 계층에서도 나타난다고 볼 수 있다. 라우터는 IP를 이용한 3계층에서 동작하는 장비이고, 스위치는 MAC을 이용한 2계층 장비이다.
필드 | 길이 | 설명 |
---|---|---|
도착지 MAC주소 | 6바이트 | 보낼 상대의 MAC주소 |
출발지 MAC주소 | 6바이트 | 이 패킷을 보내는 측의 MAC주소 |
이더넷 타입 | 2바이트 | 사용하는 프로토콜 종류를 표시 |
[표] 네트워크 엑세스 계층의 구성 필드
실제 정송되는 패킷을 통해 계층별로 구분하면 다음과 같다.
위치 | TCP/IP 계층 구분 |
---|---|
00h | 네트워크 엑세스 |
0Eh | 인터넷 |
22h | 전송 |
35h | 응용 |
[표] 패킷 데이터에서 TCP/IP의 각 계층 offset
실제 물리적 데이터를 통해 각 계층별 데이터를 나누어 보면 아래 그림처럼 구분할 수 있다.
그림3 패킷의 핵사 코드 분류
출처: https://asecurity.so/wp-content/uploads/2017/05/052817_1040_6.png
TCP/IP 핵심 프로토콜 #
네트워크 운영체제에 설치되어 있는 TCP/IP Protocol 컴퍼넌트는 TCP/IP 핵심 프로토콜이라고 불리는 일련의 상호 연결된 프로토콜이다. TCP/IP Protocol에 속하는 모든 애플리케이션과 다른 프로토콜들은 IP, ARP, ICMP, IGMP, TCP, UDP와 같은 기본 서비스에 의존하고 있다.
IP #
IP는 비연결 지향, 신뢰할 수 없는 데이터그램 프로토콜로 호스트간에 어드레싱과 패킷 라우팅을 담당한다. 비연결 지향이라는 것은 데이터를 교환하기 이전에 세션이 확림되지 않음을 뜻한다. 신뢰할 수 없다는 것은 데이터의 전달이 100% 보장되지 않는다는 의미이다. IP는 언제나 패킷을 전달하기 위한 최고의 노력을 한다. 그러나, IP패킷은 전송 중에 손실 될 수 있고, 패킷의 순서가 틀리게 전달되거나, 혹은 중첩되어 전달되거나 지연될 수 있다.
IP 헤더 필드 | 기능 |
---|---|
Source IP Address | IP데이터그램이 보내진 원본 IP 주소를 나타낸다. |
Destination IP Address | IP데이터그램의 최종 목적지 IP 주소를 나타낸다. |
Identification | 특정 IP데이터그램을 확인하기 위해 사용된다. 또한, IP데이터그램이 분할 된 경우 전체 데이터그램을 확인하기 위해 사용된다. |
Protocol | 목적 호스트에 있는 IP에게 패킷을 TCP, UDP, ICMP, 혹은 다른 프로토콜로 전달해야 하는지를 알려준다. |
Checksum | P 헤더 정보의 오류를 확인하기 위해 사용되는 간단한 수학적 계산 값 |
Time to Live(TTL) | I 데이터그램이 라우터에 의해 버려지기 전까지 최대 이동할 수 있는 네트워크 개수를 나타낸다. TTL은 보내는 측 호스트에 의해 지정되며 패킷이 끝없이 IP 인터넷 네트워크에서 돌아다닐 수 없게 한다. IP 패킷을 포워딩하게되면, 라우터는 TTL값을 적어도 1만큼 감소시킨다. |
ARP #
IP 패킷이 이더넷이나 토큰링과 같이 공유 액세스, 브로드캐스트 기반의 네트워크 기술로 전달된다면, IP 주소에 해당하는 MAC(Media Access Control) 주소를 반드시 알아야 한다. ARP는 IP 주소를 그에 해당하는 MAC 주소로 변환하기 위해 MAC-레벨 브로드캐스트를 사용한다.ARP는 RFC 826에 정의되어 있다.
ICMP #
ICMP(Internet Control Message Protocol)은 문제를 해결하는 기능과 전달할 수 없는 패킷에 대한 에러 정보를 알리기 위해 사용된다. 예를 들어, IP가 어떤 패킷을 목적 호스트로 전달할 수 없다면, ICMP는 "Destination Unreachable"메시지를 소스 호스트로 보낸다.
ICMP Message | 기능 |
---|---|
Echo Request | 원하는 호스트로의 IP 연결을 확인하기 위해 사용되는 간단한 문제 해결 메시지 |
Echo Reply | ICMP Echo Request에 대한 응답 메시지 |
Redirect | 데이터를 보내는 호스트에게 목적 IP 주소에 대한 좀 더 적합한 경로가 있음을 알리기 위해 라우터가 보내는 메시지 |
Source Quench | 데이터를 보내는 호스트에게 IP 데이터그램이 라우터의 집중 현상에 의해 손상되고 있음을 알리기 위해 라우터가 보내는 메시지. 그러면, 데이터를 보내는 호스트는 전송률을 낮춤. Source Quench는 ICMP에서 선택적 메시지이고 대부분 구현않음 |
Destination Unreachable | 라우터나 목적 호스트에 의해 보내지며 데이터그램이 전달되지 못한다는 것을 데이터를 보내는 호스트에게 알려줌 |
[표] 대표적인 ICMP 메시지
관련 키워드 #
인터넷, 프로토콜, 인트라넷, 엑스트라넷, 게이트웨이, OSI, UDP, ICMP, HTTP, Telnet, UDP, FTP, SMTP, ARP, IP, WAN, ARPANET, IP Addressing, Subnet, subnet Mask, IP Routing, 인터넷 프로토콜
Incoming Links #
Related Data Sciences (DataScience 0) #
Suggested Pages #
- 0.025 서브넷 마스크
- 0.025 호스트 식별자
- 0.025 Subnet Mask
- 0.025 Internet Protocol
- 0.025 IP address
- 0.025 서브넷팅
- 0.025 Subnetting
- More suggestions...