Chapter 5. Protocol
1. 각 계층별 PDU(Protocol Data Unit)
- Layer 1 : Signal(Bit)
- Layer 2 : Frame
- Layer 3 : Packet, Datagram
- Layer 4 : Segment
- Layer 5~7 : Data
2. Layer 2 Protocol
- Ethernet
· 가장 널리 쓰이는 근거리 통신망 Protocol
· 18Mbps의 Data 전송률과 Bus Topology를 사용한다.
※ Bus Topology
›개방된 Cable에 Computer가 연결된 형태
※ Layer 2의 Data는 Frame이라 한다.
· Ethernet의 Data 전송률
◦ 100Mbps
◦ 1000Mbps
· Ethernet을 위한 접근방법
◦ CSMA/CD(Carrier Sense Multiple Access with Collision Detection)를 사용
· Etherent Frame 구조
◦ Preamble(7Bytes)
▹ Ethernet MAC Frame의 첫 번째 Field로서 0과 1을 반복하는 7Byte로 이루어져 있다.
▹ 수신 System에게 Frame이 도착하는 것을 알려주는 역할을 한다.
▹ 수신 받는 System이 확인할 수는 없으며 실제로 물리층에 추가되어있어 공식적으로 Frame의 일부분은 아니다.
◦ SFD(Start of Frame Delimiter)(1Byte)
▹ 정상적인 Frame의 시작을 표시하는 Frame의 동기이다.
▹ 마지막 두 개의 Bit는 '11'로 수신 System에게 다음에 오는 Field가 목적지 주소임을 알려준다.
▹ 8Bit의 내용 : 10101011
◦ Destination MAC Address(6Bytes)
▹ Packet을 수신하는 목적지의 MAC Address
▹ Frame은 OSI 7 Layers의 Layer 2의 Data로 MAC Address를 참조한다.
◦ Source MAC Address(6Bytes)
▹ Packet을 송신한 System의 MAC Address
◦ Type/Length(2Bytes)
▹ 길이 또는 종류로 정의된 Field
▹ Length Field
▸ Field의 값이 1,518보다 작을 때의 Field
▹ Type Field
▸ Filed 값이 1,536보다 클 때의 Field
▸ 상위 계층의 Protocol Type을 의미한다.
▹ Type의 대표적인 값
▸ 0600h : Xerox XNS IDP
▸ 0800h : IP
▸ 0805h : X.25
▸ 0806h : ARP
▸ 0836h : RARP
◦ Data/Payload(46 ~ 1500Bytes)
▹ 상위 계층의 Protocol로부터 Encapsulation한 Data가 들어 있다.
▹ Data Field는 최소 46 ~ 1500Bytes의 크기를 가지고 있다.
▹ 상위 계층의 Packet의 길이가 최소 길이(46Byte)보다 작을 때는 끝에 Padding(0)으로 채워진다.
◦ FCS(Frame Check Sequence)(4Bytes)
▹ Destination MAC Address + Source MAC Address + Type/Length + Data/Payload의 영역을 계산해 Error를 판별하며 CRC를 이용한다.
▹ 송신측에서는 CRC를 추가해 보내고 수신측은 CRC를 확인해 Error가 확인된 Frame을 버린다.
※ CRC(Cyclic Redundancy Check)
›Error 검출 방법 중 한 가지이다.
›송신측의 Data로부터 다항식에 의해 추출된 결과를 여분의 FCS에 덧붙여 보내 수신측에서 동일한 방법으로 추출한 결과의 일치 여부로 오류를 검사하는 기술
· CSMA/CD 충돌 기회 감소 방법
◦ CSMA는 Network 내의 Computer가 Packet을 전송하기 이전에 먼저 매체(Computer)에 귀를 기울일 것을 요구하고 있으며 '말하기 이전에 듣기(Listen Before Talk)' 원칙에 기반을 두도록 수정되었다.
◦ Listen Before Talk는 통신이 진행되기 전에 감지해 통신을 하는 것으로 이는 CSMA/CD의 충돌 방식이 완전히 대비될 수는 없으나 충돌 기회를 감소시킬 수 있는 역할을 한다.
3. Layer 3 Protocol
- ARP(Address Resolution Protocol)
· Network 내의 Computer가 다른 Computer의 MAC Address를 모를 때 IP 주소에 대응되는 MAC Address를 알아내는 Protocol
· ARP Packet은 Data를 송수신하기 위한 Packet이 아니기 때문에 Packet 내에 Data가 할당되는 공간이 없다.
· Data가 할당되는 공간 대신 목적지의 물리 주소가 Data 역할을 한다.
· 간단하게 말해서 논리적 주소를 물리적 주소로 대응(Mapping)시키는 역할을 한다.
· Ping Program(ping.exe)를 이용해 동작한다.
※ Layer 3의 Data는 Packet이라 한다.
· 주소 변환방법
◦ Static Mapping(정적 대응)
▹ 관리자가 수동으로 ARP Table을 관리
◦ Dynamic Mapping(동적 대응)
▹ ARP
▹ RARP
· ARP Packet 구조
◦ Hardware Type(2Byte)
▹ ARP가 수행되고 있는 Network 유형을 정의하는 역할을 한다.
▹ Physical Type of Hardware
▸ Ehternet(10Mb) : 1
▸ IEEE 802 Networks : 6
▸ ARCNET : 7
▸ Frame-Relay : 15
▸ Asynchronous Transfer Mode(ATM) : 16
▸ HDLC : 17
▸ Fiber Channel : 18
▸ Asynchronous Transfer Mode(ATM) : 19
▸ Serial Line : 20
◦ Protocol Type(2Byte)
▹ 상위 Protocol을 정의하는 역할을 한다.
▹ Protocol Type of Ethernet
▸ 0x0800
◦ Hardware Address Length(1Byte)
▹ 물리 주소의 길이를 Byte 단위로 정의하는 역할을 한다.
▹ Length of Ethernet
▸ MAC Address의 길이를 의미
▸ 6Byte(48Bit)이기 때문에 6이 입력된다.
◦ Protocol Address Length(1Byte)
▹ 논리 주소의 길이를 Byte 단위로 정의하는 역할을 한다.
▹ Length of IPv4
▸ IPv4의 길이를 의미
▸ 4Byte(32Bit)이기 때문에 4가 입력된다.
◦ Opcode(2Byte)
▹ Packet의 유형을 정의하는 역할을 한다.
▹ Type of Packet
▸ ARP Request : 1
▸ ARP Reply : 2
▸ RARP Request : 3
▸ RARP Reply : 4
▸ DRARP Request : 5
▸ DRARP Reply : 6
▸ DRARP Error : 7
▸ InARP Request : 8
▸ InARP Reply : 9
◦ Sender Hardware Address
▹ 송신자의 물리 주소를 나타내는 Field
▹ Value of Ethernet
▸ 6Byte 값을 의미해 6이 입력된다.
◦ Sender Protocol Address
▹ 송신자의 논리 주소를 나타내는 Field
▹ Value of IPv4
▸ 4Byte 값을 의미해 4가 입력된다.
◦ Target Hardware Address
▹ 목적지의 물리 주소를 나타내는 Field
▹ ARP Request의 경우 송신자가 목적지 System의 물리주소를 몰라 0으로 설정해 보낸다.
▹ Value of Ethernet
▸ 6Byte 값을 의미해 6이 입력된다.
◦ Target Protocol Address
▹ 목적지의 논리 주소를 나타내는 Field
▹ Value of IPv4
▸ 4Byte 값을 의미해 4가 입력된다.
· ARP 동적 지점
◦ ping.exe가 실행 시 모든 값이 채워져 있으면 정상적으로 ping의 Request, Reply가 발생하지만 필요한 값이 없을 시 ARP가 발생한다.
◦ ARP의 요청(Request)
▹ ping.exe가 실행도중 Layer 2에서 Destination MAC Address Field에 값이 없을 시 발생한다.
▹ Request Packet이 발생 후 Reply Packet이 전송되며 전송 후 ARP Table에 ping.exe의 인자 값인 IP와 해당 IP에 대응되는 MAC Address가 입력된다.
- IP(Internet Protocol)
· Network Layer(Layer 3)의 핵심 Protocol로 TCP와 UDP는 모두 IP에서 Service를 제공한다.
· TCP/UDP
◦ TCP : 연결형으로 상대방이 통신 준비가 됐음을 확인한 후 Packet을 전송한다.
◦ UDP : 비연결형으로 상대방이 통신 준비에 관계없이 Packet을 전송한다.
· Transport Layer(Layer 4)의 Data 즉, Segment를 받아 인접해있는 Network가 요구하는 크기의 Packet으로 분할 전송한다.
· IP Packet의 기능
◦ 논리적 주소(IP) 제공
◦ 경로(Path) 제공
◦ Data 분할 및 재조립
※ Data의 분할, 재조립만 할 수 있을 뿐 Data의 흐름 제어와 Data의 오류 제어 기능은 제공하지 않는다.
Data의 흐름 제어와 Data의 오류 제어 기능 IP Packet이 전달되는 Protocol에서 제공한다.
· IP Packet
◦ Version(4Bit)
▹ 현재 사용하는 IP의 Version 정보를 나타내는 Field이다.
▹ Type of IP
▸ IPv4 : 4
◦ Header Length(4Bit)
▹ Header의 크기를 나타내는 Field로 Field 값에 4를 곱한 값이 Header 전체 길이가 된다.
▹ IP Datagram의 경우 Header의 길이가 Option Field에 따라 달라질 수 있어 Header Length Field로 명시한다.
▹ Option이 없다면 전체 Header의 길이는 20Byte로 해당 Field의 값은 5가 된다.
▹ Option이 최대 길이라면 60Byte로 해당 Field의 값은 15가 된다.
◦ Type of Service
▹ Datagram이 Router에서 어떻게 처리되어야 하는지 정의하는 Field 이다.
▹ 각 Field의 역할
▸ Precedence : 우선순위 값
▸ Throughput / Reliability / Cost : TOS(Type Of Service) 설정 값
▸ Reserved : 예약 값
◦ Total Length(16Bit)
▹ Datagram의 전체 길이를 나타내는 Field이다.
▹ 16Bit이기 때문에 2¹⁶-1(65535)크기로 제한되어 있다.
▹ Ethernet의 경우 MTU(Maximum Transport Unit)으로 Packet 1개의 크기를 제한하고 있으며 MTU의 기본 값은 1500Byte로 설정되어 있다.
▹ IP Header의 길이는 가변적으로 유효한 Data 영역 부분에 대한 추출을 위해 필요하다.
▹ Ethernet의 경우 IP Header를 포함한 총 길이가 46Byte보다 짧은 경우 Ethernet의 Padding 영역을 강제로 삽입하며 Padding 영역은 0으로 채워진다.
◦ Identification(16Bit)
▹ Packet의 ID를 나타내는 Field이다.
▹ 연속된 Datagram을 전송했을 시 Identification 값은 연속적으로 증가한다.
▹ IP Datagram은 Network의 MTU 값에 의해 분할되는데 분할된 IP Packet을 재조립하는 과정에서 원본 Datagram을 파악하는 정보로 사용한다.
▹ Datagram이 단편화 즉, Packet으로 분할된 Datagram의 부분이 Memory 공간에 흩어지게 될 경우 Identification 값으로 알아보게 되며 모든 단편화된 Packet의 Identification 값이 복사된다.
◦ Flag(3Bit)
▹ 분할된 Packet의 마지막을 나타낼 수 있는 Field이다.
▹ 각 Bit별 역할
▸ 첫 번째 Bit : 0으로 기록되며 사용되지 않는다.
▸ 두 번째 Bit : 해당 Packet이 분할된 Packet 인지를 표현하며 값이 1일 경우 분할되지 않은 Packet(단일 Packet)을 의미
▸ 세 번째 Bit : Datagram의 마지막 Packet을 표현하며 값이 0일 경우 마지막 단편이거나 단일 Packet을 의미한다.
◦ Fragmentation Offset(F.O)(13Bit)
▹ 분할된 Packet의 상대적 위치를 나타내는 Field이다.
▹ 2¹³-1(8191)로 8Byte보다 큰 값을 표현하지 못해 8Byte 단위로 표현한다.
◦ Time To Live(TTL)
▹ Network의 Line 상에 Packet이 체류할 수 있는 시간을 Hop Count로 나타내는 값을 가진 Field이다.
▹ Router를 1개를 지날 때마다 1씩 감소한다.
▹ 값이 클수록 통신 가능성이 높고 값이 작을수록 통신 가능성이 낮다.
◦ Protocol(8Bit)
▹ IP 계층의 Service를 사용하는 상위 Protocol을 정의하는 Field이다.
▹ 상위 Protocol별 값
▸ ICMP : 1
▸ IGMP : 2
▸ TCP : 6
▸ UDP :17
▸ OSPF : 89
▸ IGRP : 88
◦ Header Checksum(16Bit)
▹ Error 확인을 위한 Field이다.
◦ Source Address
▹ Packet을 송신한 System의 IP 주소를 나타내는 Field이다.
◦ Destination Address
▹ Packet을 수신하는 System의 IP 주소를 나타내는 Field이다.
◦ Option(Maximum : 40Byte)
▹ 표준 Header의 보안을 위한 기능, Record Route, Timestamp 등의 정보를 담기 위해 추가되는 항목을 담기위한 Field이다.
▹ Network 상태 Test, Debug 용도로 사용 가능하지만 일반적으로 많이 사용하지는 않는다.
- ICMP(Internet Control Message Protocol)
· IP의 단점을 보완하기 위해 설계된 Protocol이다
· IP Protocol은 Error 발생 원인이나 진단 기능이 지원되지 않아 이를 보완하기 위해 같은 계층의 ICMP를 이용한다.
· ICMP Packet의 구조
◦ Type(1Byte)
▹ Code Field와 함께 쓰이며 ICMP의 목적을 표현하는 Field로 어떠한 용도로 사용되는지를 나타낸다.
◦ Code(1Byte)
▹ ICMP Type의 세부 내용을 나타내며 Code Field와 Type Field를 조합해 ICMP Message의 목적과 용도를 나타낸다.
◦ Checksum(2Byte)
▹ ICMP Message의 이상 유무를 판단하는데 사용되는 Field이다.
· ICMP Message의 종류
◦ Query(질의) Message
▹ 다른 Host로부터 특정 정보를 획득할 수 있게 하는 Message
▹ Network 문제를 진단 시 쓰이는 Message
▹ Query Message
▸ Echo Request and Reply(Type : 8/0)
▫ IP Host 진단에 사용하는 Message
▫ 가장 일반적인 ICMP 유형
▫ ping.exe를 이용하여 Message를 작성한다.
▸ Timestamp Request and Reply
▫ 두 System 간에 IP Datagram이 오고 가는데 필요한 왕복 시간을 결정하는 Message
▸ Address mask Request and Reply
▫ Host가 Router에게 Subnet Mask를 요청할 때 사용하는 Message
▸ Router Solicitation and Advertisement
▫ 다른 Network의 Host에게 Data 전송 시 자신의 Network에 연결된 Router의 주소를 요청/광고하는 Message
▸ IPv6 위치 조회/응답
▫ IPv6를 이용하는 Host 간에 위치를 조회/응답 할 때 사용하는 Message
◦ Error Reporting(오류 보고) Message
▹ IP Packet 처리 도중 발생한 문제를 보고 하는 Message
▹ Error Message
▸ ICMP Error Message를 전달하는데 Datagram에 관한 Error Message는 생성하지 않는다.
▸ 분할된 Datagram에서는 첫 번째 Datagram에만 Error를 생성한다.
▸ Multicast Address를 가진 Datagram은 Error Message를 생성하지 않는다.
▸ 127.0.0.1(자신으로 가리키는 IP)와 0.0.0.0(IPv4 주소 전체 대역)과 같은 특수 주소를 목적지로 하는 Datagram은 Error Message가 생성되지 않는다.
▸ Destination Unreachable(Type : 3)
▫ Router가 Datagram의 경로를 찾을 시(Routing) 경로를 찾지 못할 경우의 Message
▫ Host가 Datagram을 전송할 수 없는 경우의 Message
▫ Network Unreachable(Code : 0)
▪ Router의 Routing Table에서 목적지 Network 경로를 찾지 못한 경우 발생하는 Message
▪ 사용자가 Internet에서 Routing 할 수 없는 사설 주소에 연결한 경우 발생하는 Message
▫ Host Unreachable(Code : 1)
▪ IP Datagram이 최종 목적지 System에 전달되지 못했음을 의미하는 Message
▪ 최종 단계의 Router가 목적지 System에 이르는 방법을 모르는 경우 발생하는 Message
▸ Source Quench(Type : 4)
▫ ICMP Message중 가장 단순한 Message
▫ 송신 System이 목적지 System에서 처리하기에 너무 많은 Data를 전송할 시 송신 System의 Datagram 전송 속도를 줄일 것을 요구
▸ Redirect(Type : 5)
▫ Router가 최적 경로를 사용하지 않는 Host를 발견할 시 대체경로를 알려주는 Message
▫ 같은 Subnet에 존재하여야 한다.
▸ Time Exceed for a Datagram(Type : 11)
▫ IP Header의 TTL 값이 만료 시 발생하는 Message
▫ Forwarding이나 Reassembling 작업이 너무 오래 걸려 보고하는 장비가 Data를 소멸 시킬 때 송신하는 Message
▫ Time to Live Exceed in Transit(Code : 0)
▪ IP Datagram이 최종 목적지에 도달되기 전 Datagram의 TTL 값이 0에 도착한 경우 송신 System에 보내지는 Message
▪ TTL 값은 Router 1개를 지날 때마다 1씩 감소되며 0이 되면 이 Message를 송신 System에 인접한 Router가 송신 System으로 보낸다.
▫ Time to Live Exceed in Reassembly(Code : 1)
▪ 단편화된 Datagram을 목적지 System이 주어진 시간 안에 단편화된 Data 중 일부분을 분실해 모든 Data를 수신하지 못한 경우 해당 Datagram을 모두 소멸 시킨다는 Message
▸ Parameter Problem on a Datagram
▫ Datagram의 Header Error 발생 시 사용되는 Message
· ICMP Message 별 Type & Code
'Network > Theory' 카테고리의 다른 글
Chapter 7. Router (0) | 2015.08.16 |
---|---|
Chapter 6. Switch (0) | 2015.08.16 |
Chapter 4. IP Addressing & subnetting (0) | 2015.08.16 |
Chapter 3. Ethernet & Network Equipment (0) | 2015.08.16 |
Chapter 2. OSI 7 Layer & TCP-IP (0) | 2015.08.16 |