IT/리눅스마스터1급

Ethernet frame format etc..

알콩달콩아빠 2022. 5. 3. 18:26
728x90
반응형

</style>

Ethernet frame format

<byte단위>

Preamble DA SA Type DATA Pad CRC

 

field size(byte) 기능
Preamble 8 ·송신측과수신측간의/수신속도를일치시키기
bit synchronization
· 101010108연속반복되는64비트로구성
DA
(Destination Address)
6 · Block ID (3 byte) + MAC address( 3 byte)
-- Block ID
LSB
  1. Individual
  2. Multicast
NIC 제조회사를식별하는code
LSB 0 : 하나의목적지스테이션
LSB 1 : Multicast Address
모든비트1 : Broadcast(ARP,RARP사용)
SA
(Sourse Address)
6 · MAC controller초기화될, ROM으로부터주소
읽어내부의register저장하고있다가, frame
송신지값을읽어SA영역에자동삽입
Type 2 · 상위계층protocol표시
0600 = XNS IDP
0800 = IP
0805 = X.25 PLP
0806 = ARP
8035 = RARP
8137 = Netware IPX
8191 = NetBIOS
DATA 46~ 1500 · Data최소길이제한인46bytes보다작을때, 
이만큼Pad추가( 0으로채워짐)

o데이타전송장치가한번에보내는데이타묶음을frame이라고하는데, Ethernet frame최 소46 최대1500 octet 이다.

 

 

 

 

 

 

 





IP Protocol format

 

필드명 길이(비트) 기능
Ver(Version) 4 · IP 버전값을표시
· 현재는4
IHL(header
Length)
4 · 4바이트단위로헤더길이를표시(최소값은5):default
Service Type 8 ·서비스클래스지정(보통0)
· 어떻게datagram다루는지보여주는field.
· 어떤hostrouterservice type field전적으로무시하
반면이있는데반해다른것들은routing결정하거나
모리공급이부족할버리지않고traffic보호하는
결정하는데사용
Bit 의미
0~2 Precedence . Levels: 0~7
Level 0 : normal
Level 7 : 가장높은우선순위를제공
  1. Delay indication 0:normal 1: low
  2. Throughput indication 0:normal 1: high
  3. Reliability indication 0:normal 1: high
  4. 6~7 Reserved for future use
  5.  
  6. @3.4.5 biy
  7. datagram바라는transport type
  8. gateway주어진목적지에대해하나이상의route안다면, 바라는것중제일근접한것에해당하는하나를선택하기위해서transport fieldtype사용
Total Length 16 · IP패킷크기(바이트단위) 최대값은65535
· Ethernet(14byte) 프로토콜을제외한메시지길이(byte)
· lengthdatagram fragment length이므로,original datagram
length계산하려고하면Fragment Offset Total
Length field참조
Identification 16 · 데이터그램을유일하게구분할필요가있을사용하는
일련번호
·숫자는destination host함께속해져있는datagram
fragment인식하게끔도와준다.
· 일반적으로IP datagram발생시키는프로그램에서새로
datagram만들때마다1증가시켜서전송합니다.
숫자는나중에설명할fragmentation발생하더라도
변경되지않습니다.
Flags 3 · 첫번째비트: Reserved 0
· 두번째비트: not fragment bit
datagramfragement되는것을방지위해1set만약,routerfragmentation 으로datagramdelever하고비트를1
set시키면, datagram버리고source에게error message 되돌려보낸다.
0 : May Fragment
1 : Don’t Fragment
· 세번째비트: more fragement bit
Fragment Offset 13 · 전체메시지패킷의위치를표시(8바이트단위)
· 0이면, data처음이라는것을보여주기때문에들어온
datagramfragement되지않은걸말해준다.
TTL
(Time to Live)
8 · 패킷이통신망내에서계속돌아다니는것을방지하기
하여사용되며보통hop counter값을사용한다.
· 노드를지나갈때마다TTL값이1감소하고이것이0
되는노드에서패킷을제거한다.
· 0이면, gatewaydatagram버리고근원지에게error
message되돌린다.
Protocol 8 · 데이터를전달할상위계층프로토콜을지정
( 1 : ICMP
2 : IGMP
6 : TCP
8 : EGP
9 : IGP
17 : UDP )
Header
Checksum
16 · 헤더부분의오류검출
· 계속update되어져야한다. (각각rooute에서TTL field 
바뀌기때문에)
· IP header앞으로나올TCP segmentchecksum
1'complement sum이라는방식으로checksum계산한다.
checksum부분을0으로만들고header16bit단위로쪼개
값을모두더한다음16bit이상의자리올림이
부분을떼어서다시16bit부분에더한다. 그리고값의
비트를반전시키면된다. 이렇게하는이유는
checksum확인하는시간이빠르기때문이다. 수신된패킷
checksum계산하려면모든octet더해서결과,
모든bit1되는지만확인하면된다.
Source
IP Address
32 · 송신지IP 주소
Destination
IP Address
32 · 수신지IP 주소
IP Options 가변 · 옵션선택
· IP option다음과같은option code octet 으로시작한다.
0 1 2 3 4 5 6 7 bit
+------+--------------------+--------------------------------------------------+
| COPY |OPTION CLASS| OPTION NUMBER |
+------+--------------------+--------------------------------------------------+
* COPY(1bit) : packet에서fragmentation발생하면각각의
fragmentoptioncopy할것인지를결정.
* OPTION CLASS(2bit)
0 ? datagram or network control.
1 ? Reserved for future use.
2 ? Debugging and measurement.
3 ? Reserved for future use.
* OPTION NUMBER(5bit)
0 - option list(option한개이상이어질수있고0 
끝을의미한다.)
1 - 암것도아님(no operation)
2 - 군사적용도로사용됨(보안관련)
3 - Loose source routing.
7 - Record routing
9 - Strict source routing
4 - Internet timestamp
Padding 가변 32비트단위로패킷의길이를맞춤

o인더넷에연결된모든호스트는IP사용해야한다.

oIP주요임무는호스트의주소지정(Addressing)패킷전달이다. 그러나, 종단간(End-to-End)전송되는메시지의안정성이나흐름제어에관해서는책임이없다.

단지, 패킷을다음목적지로전달하기위해최선을다할전달되었는지에관해서는보장해주지않는다.

oIP특성

-- 비연결프로토콜(Connectionless Protocol)

-- 필요시에는패킷을절단

-- 32비트의인터네트주소를사용하여주소지정

-- 최대패킷크기65535바이트

-- 데이터를제외한헤더부분에관해서만체크썸

-- 필요에따라요구되는프로토콜필드는선택적인것으로지정

-- 패킷활동시간제한

oIP패킷의절단

패킷의절단이필요한이유는송신자로부터목적지에이르기까지의링크의특성이모두다르때문이다. 따라서, 네트워크상의노드에서수행되는IP수신된패킷을다음의노드(또는호스트)전달하기위해절단된전송하는기능을가져야한다. 또한절단되어전송된패킷을다시원래의데이터그램으로조립할있어야한다.

 

ARP ,RARP Protocol format

Ethernet
Destination addr
Ethernet
Source addr
Frame type

 

Harware type Protocol type
Hard size Prot size Operation
Sender Ethernet Address
Sender Ehternet Address Sender IP Address
Sender IP Address Target Ethernet Address
Target Ethernet Address
Target IP Address

<28byte ARP request/reply>

필드명 길이(비트)
Frame type 16 0x0806 == ARP , 0x0800 == IP
(ethernet protocol같이보내준다.)
hardware type 16
  1. 네트워크상의NIC식별하기위하여사용되는물리적인하드웨어주소의유형을식별한다. ( 1 == ARP )
protocol type 16 ARP이용하는네트워크인터페이스계층또는OSI 데이터링크계층보다상위계층에서동작하는프로토콜을식별한다. ( 0x0800 == IP )
hard size 8 근원지목적지물리적하드웨어주소필드에포함된옥텟의수를나타낸다.
(address길이알려준다) : 6byte / hw주소
Operation 16 0001 = ARP Request
0002 = ARP Response
@ 0003 = RARP request
0004 = RARP response
protocol size 8 근원지목적지인터넷주소필드에
포함된옥텟의수를나타낸다.
(IP주소길이를알려준다) : 4byte / IP주소
Sender Ehternet address 48 (6byte) 근원지시스템의NIC할당된물리적
하드웨어주소를할당한다.
Sender IP address 32 (4byte) 근원지시스템의NIC할당된인터넷주소를할당한다.
목적지물리적하드웨어주소
(target Ethernet address)
48 (6byte)
: 아직모름
목적지시스템의NIC할당된물리적
하드웨어주소를할당한다.
목적지인터넷주소
(target IP address)
32 (4byte) 목적지시스템의NIC할당된인터넷주소를할당한다.

o인터네트에서는물리적네트워크주소를사용할없는문제가발생한다.

이에대한대안으로인터네트주소는물리적주소로, 물리적네트워크주소는인터네트주소로변환시켜주는프로토콜이ARP,RARP이다.

oARP목적은인터네트주소를Ethernet같은하드웨어주소로변환하는것이다

oRARPARP와는반대로하드웨어주소를IP주소로변환하기위해서사용됨.

TCP/UDP Protocol

 

o메시지를전송할일단메시지를일정한길이의패킷(packet)으로나누게되는데역할을TCP하며, TCP패킷에패킷번호와수신측의주소, 그리고에러검출용코드를추가한다.

o패킷으로쪼개진메시지는IP의해서수신컴퓨터로보내지게된다. 수신측의TCP에러 유무를검사하고에러가발견되면재전송을요구하게된다. TCP전송데이터의흐름을 관리하며데이터의에러유무를검사하고, IP데이터패킷전송한다.

oOSI(Open System Interconnection, 개방시스템접속)이란서로다르고이질적인네트워크구조들간에정보를교환하기위하여개발중인표준프로토콜이다.

 

< TCP protocol format >

길이(비트)
Source Port 16 송신측의응용프로세스를구분하는포트번호
Destination Port 26 수신측의응용프로세스를구분하는포트번호
Sequence Number 32 송신된데이터의순서번호(바이트단위)
Ack Number 32 수신된데이터바이트수+1
(아래의ACK=1 일때의미가있음)
Header Length 4 헤더크기(4바이트단위)보통5된다.
Rsvd(Reserved) 6 Reserved for future use.




Code
Bits
(left to
right)
SYN 1 연결요청시사용되며Sequence Number
초기값임을알린다.
ACK 1 Ack데이터임을표시
(이때Ack Number 값이유효하다)
URG 1 긴급데이터임을표시
(이때Urgent Pointer값이유효하다)
FIN 1 접속을종료하는데사용
RST 1 접속을리셋하는데사용
PSH 1 Push요청하는segment
Window 16 흐름제어용윈도우크기(바이트단위)
Checksum 16 TCP, PDU 전체와IP계층의헤더후반부
12바이트(송수신지IP주소)대한오류
검출코드
Urgent Pointer 16 긴급데이터가들어있는위치를표시

< TCP특성>

oTCP(Transmission Control Protocol)IP상에서수행되는Transport 계층의프로토콜이다.

주요임무는네트워크를통한안정성있는데이터의전송이다.

o동시에양방향전송(전이중, Full Duplex)가능한가상선로(Virtual Circuit)제공.

o사용자가느끼는데이터전송은블록단위의전송이아니라줄기의데이터흐름과같다.

o안정성있는데이터전송(오류제어, 흐름제어)

o슬라이딩윈도우프로토콜을사용한데이터전송

위에서가장강력한TCP특징은두번째항복이다. 송신자와수신자는전송되는데이터에있어서어느부분까지가블록의끝이며, 어느부분부터블록의시작인지를구분할필요가없다. 송신자는파일에데이터를출력하듯이전송하기위한함수(, write)사용하여송신하고, 수신자는파일에서데이터를읽듯이수신하기위한함수(, read)사용하여수신한다.

TCP이런특성을갖는이유는데이터송수신의흐름제어를바이트단위로하기때문이다. 프로토콜헤더의일련번호(Sequence Number)전송확인(Acknowledgement) 등의필드가바이트 단위의값으로표현된다는점이기때문이다. 이로인해전송되는블록의크기를결정하는있어서유연성을가질있게된다.

 

 

 

TCP Port Assignments

Port number Assignments
0 Reserved
1 TCP multiplexor
5 RJE
7 Echo
9 Discard
11 Active users
13 Daytime
15 Network status program
17 Quote of the day
19 Character generator
20 FTP - data connection
21 FTP ? command connection
23 TELNET
25 Simple mail transport protocol
37 Time
42 Name server
43 Who is
53 Domain name server
77 Any private RJE service
79 Finger ? find a active user
93 Device control protocol
95 SUPDUP protocol
101 Network info. Center host name server
102 OSI- transport service access point
103 X.400 amil service
104 X.400 mail sending
111 Sun Microsystems remote procedural call
113 Authentication service
117 UNIX to UNIX copy (UUCP) path service
119 Usenet news transfer protocol
129 Password generator protocol
139 NetBIOS session service
160~223 Reserved



< UDP protocol>

UDP Port Assignments

Port number Assignments
0 Reserved
7 Echo
9 Discard
11 Active users
13 Daytime
15 Who is up or NETSTAT
17 Quote of the day
19 Character generator
37 Time
42 Name server
43 Who is
53 Domain name server
67 Bootstrap protocol server
68 Bootstrap protocol client
69 Trivial File Transfer Program(TFTP)
111 Sun RPC
123 Network time protocol
161 SNMP net monitor
162 SNMP traps
512 UNIX comsat
513 UNIX rwho process
514 System log
525 Timed


 

oUDP트랜스포트계층에해당하는비연결Protocol(Connectionless Protocol)이다.

< UDP특성>

o가상선로(Virtual Circuit)개념이없는비연결Protocol이다.

o데이터의전송이블록단위이다.

o안정성없는데이터전송(블록재전송흐름제어등이없다.)

o슬라이딩윈도등의복잡한기술을사용하지않는다.

oUDP사용자는16비트의포트번호를할당받는다.





ICMP protocol format

ICMP - (Internet Control Message Protocol)

8-bit type 8?bit code 16-bit checksum


(content depends on type and code)

 

Field
Type 메시지를구분해준다.
Code Message type대해많은정보를제공해준다.
Checksum ICMP uses the same additive checksum algorithm as IP , but the ICMP checksum only the ICMP message

 

타입필드 ICMP message type
0 Echo Reply
3 Destination Unreachable
4 Source Quench(손실)
5 Redirect(change a route)
8 Echo Request
11 Time Exceeded for a Datagram
12 Parameter Problem on a
Datagram
13 Timestamp Request
14 Timestamp Reply
15 Information Request
(obsolete)사라짐
16 Information Reply
(obsolete)
17 Address Mask Request
18 Address Mask Reply

<ICMP echo request or reply message format>

Type(8 or 0) Code(0) Checksum
Identifier Sequence Number
Optional Data
……….

 

field
Type 8 = request 0 = reply
Identifier
Sequence Number
senderreauestreplymatch하기위해사용된다.
Optional Data sender에게return되는데이터를포함하는variable length field

 

  • messageping 이라는프로그램에서사용한다.
  • 특정호스트의네트웍기능이살아있는지확인해보려면TYPE0넣고, CODE항상0이구identifier에는IP headeridentifier같이다른패킷과구분할수있는숫자를넣어두고optional data로는아무거나넣고, sequence number하나씩증가시키면서패킷을전송하면된다. 수신측에서는다른건그냥두고TYPE8바꾼다음checksum계산해서 다시 돌려보내면 됩니다.
728x90
반응형

'IT > 리눅스마스터1급' 카테고리의 다른 글

SurfaceFlinger,AudioFlinger  (0) 2022.05.03
init.rc  (0) 2022.05.03
SFD jam sequence  (0) 2022.05.03
csma/cd  (0) 2022.05.03
pcap  (0) 2022.05.02