根据局域网的最大传输单元来设计合适大小的udicmp报文格式是多少

扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
点对点局域网文件共享系统的设计与实现
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口UDP报文的覆盖 重叠问题对一个UDP Server来说,如果同时有几个UDP Client向其..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
UDP报文的覆盖 重叠问题
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口mac/ip/TCP/udp报文格式与理论大小
前导码(8bytes)|目的位址(6bytes)|来源位址(6bytes)|资料栏位通讯(2bytes)|主要资料(46-1500bytes)|检查码(4bytes)
圖三、乙太網路的 MAC 訊框
在這個 MAC 當中,最重要的就是那個 6 Bytes 的目的與來源位址了!
事實上,在所有的乙太網路卡當中都有一個獨一無二的網路卡卡號, 那就是上頭的『目的與來源位址』,這個位址是硬體位址( hardware
address ), 共有 6 bytes ,分別由 00:00:00:00:00:00 到 FF:FF:FF:FF:FF:FF, 這
6 bytes 當中,前 3bytes 為廠商的代碼,後 3bytes 則是該廠商自行設定的裝置碼了。 在 Linux
當中,你可以使用 ifconfig 這個指令來查閱你的網路卡卡號喔! 不過,由於 MAC 主要是與網路卡卡號有關,所以我們也常常將
MAC 作為網路卡卡號的代稱。 特別注意,在這個 MAC
的傳送中,他僅在區域網路內生效, 如果跨過不同的網域 (這個後面 IP 的部分時會介紹),那麼來源與目的的位址就會跟著改變了。
這是因為變成不同網路卡之間的交流了嘛!所以卡號當然不同了!如下所示:
圖四、在不同主機間持續傳送相同資料的 MAC 訊框變化
例如上面的圖示,我的資料要由電腦 A 通過 B 後才送達 C ,而 B 電腦有兩塊網路卡, 其中 MAC-2 與 A 電腦的
MAC-1 互通,至於 MAC-3 則與 C 電腦的 MAC-4 互通。 但是 MAC-1 不能與 MAC-3 與 MAC-4
互通,為啥?因為 MAC-1 這塊網路卡並沒有與 MAC-3 及 MAC-4 使用同樣的 switch/hub
相接嘛!所以,資料的流通會變成:
先由 MAC-1 傳送到 MAC-2 ,此時來源是 MAC-1 而目的地是 MAC-2;
B 電腦接收後,察看該訊框,發現目標其實是 C 電腦,而為了與 C 電腦溝通, 所以他會將訊框內的來源 MAC 改為
MAC-3 ,而目的改為 MAC-4 ,如此就可以直接傳送到 C 電腦了。
也就是說,只要透過 B (就是路由器) 才將封包送到另一個網域 (IP 部分會講) 去的時候,
那麼訊框內的硬體位址就會被改變,然後才能夠在同一個網域裡面直接進行 frame 的流通啊!
MAC包大小:旧为1900bytes,大为9000bytes
封包的表頭
現在我們知道 IP 這個資料封包 (packet) 是需要放置在 MAC 訊框裡面的,所以當然不能比 MAC
所能容許的最大資料量還大!但是 IP 封包其實可以到 65535 bytes 那麼大的吶! 那麼 IP 封包除了資料之外,他的表頭資料
(head) 是長怎樣呢? 在裡面最重要的莫過於那個網路卡硬體位址, 那麼在 IP 表頭裡面當然就以來源與目標的 IP
位址為最重要囉! 除此之外, IP 表頭裡面還含有哪些重要資料呢?如底下所示:(下圖第一行為每個欄位的
Type of Service
Total Length
Identification
Fragmentation Offset
Time To Live
Header Checksum
Source Address
Destination Address
圖八、IP 封包的表頭資料
在上面的圖示中有個地方要注意,那就是『每一行所佔用的位元數為 32
bits』, 也就是說, IP 封包的表頭資料是 32 bits 的倍數喔!那各個表頭的內容分別介紹如下:
Version(版本)宣告這個 IP
封包的版本,例如目前慣用的還是 IPv4 這個版本,在這裡宣告的。
IHL(Internet Header Length,
IP表頭的長度)告知這個 IP 封包的表頭長度,單位為位元組(bytes)。
此 IHL 長度的範圍為 5~15。
Service(服務類型)這個項目的內容為『PPPDTRUU』,表示這個
IP 封包的服務類型,主要分為:
PPP:表示此 IP 封包的優先度; D:若為 0 表示一般延遲(delay),若為 1 表示為低延遲;
T:若為 0 表示為一般傳輸量 (throughput),若為 1 表示為高傳輸量;
R:若為 0 表示為一般可靠度(reliability),若為 1 表示高可靠度。
UU:保留尚未被使用。
我們前面談到 gigabit 乙太網路時曾提到 Jumbo frame 對吧!可以提高 MTU, 由於 gigabit
乙太網路的種種相關規格可以讓這個 IP 封包加速且降低延遲, 某些特殊的標誌就是在這裡說明的。
Length(總長度)指這個 IP 封包的總容量,包括表頭與內容
(Data) 部分。最大可達 65535 bytes。
Identification(辨別碼)我們前面提到
IP 袋子必須要放在 MAC 袋子當中。不過,如果 IP 袋子太大的話, 就得先要將 IP 再重組成較小的袋子然後再放到 MAC
當中。而當 IP 被重組時, 每個來自同一筆資料的小 IP 就得要有個識別碼以告知接收端這些小 IP 其實是來自同一個封包才行。
也就是說,假如 IP 封包其實是 65536 那麼大 (前一個 Total Length 有規定), 那麼這個 IP
就得要再被分成更小的 IP 分段後才能塞進 MAC 訊框中。那麼每個小 IP 分段是否來自同一個 IP
資料,呵呵!這裡就是那個識別碼啦!
Flags(特殊旗標)這個地方的內容為『0DM』,其意義為:
D:若為 0 表示可以分段,若為 1 表示不可分段
M:若為 0 表示此 IP 為最後分段,若為 1 表示非最後分段。
Offset(分段偏移)表示目前這個 IP 分段在原始的 IP
封包中所佔的位置。 就有點像是序號啦,有這個序號才能將所有的小 IP 分段組合成為原本的 IP 封包大小嘛! 透過 Total
Length, Identification, Flags 以及這個 Fragment Offset 就能夠將小 IP
分段在收受端組合起來囉!
Time To Live(TTL,
存活時間)表示這個 IP 封包的存活時間,範圍為 0-255。當這個 IP
封包通過一個路由器時, TTL 就會減一,當 TTL 為 0 時,這個封包將會被直接丟棄。說實在的,要讓 IP 封包通過 255
個路由器,還挺難的~ ^_^
Number(協定代碼)由於網路上面的封包協定太多了,每個協定都是裝在 IP
當中的, 所以 IP 當然就得在表頭上面告知收受端,這個 IP 內含有的資料是什麼協定才行。 一般常見的網路協定如下所示:
IP 內的號碼
協定名稱(全名)
ICMP (Internet Control Message Protocol)
IGMP (Internet Group Management Protocol)
GGP (Gateway-to-Gateway Protocol)
IP (IP in IP encapsulation)
TCP (Transmission Control Protocol)
EGP (Exterior Gateway Protocol)
UDP (User Datagram Protocol)
當然啦,我們比較常見到的還是那個 TCP, UDP, ICMP 說!
Checksum(表頭檢查碼)用來檢查這個 IP
表頭的錯誤檢驗之用。
Address還用講嗎?當然是來源的 IP 位址,相關的 IP
我們之前提過囉!
Destination
Address有來源還需要有目標才能傳送,這裡就是目標的 IP
(其他參數)這個是額外的功能,提供包括安全處理機制、路由紀錄、時間戳記、
嚴格與寬鬆之來源路由等。
Padding(補齊項目)由於
Options 的內容不一定有多大,但是我們知道 IP 每個資料都必須要是 32 bits, 所以,若 Options 的資料不足
32 bits 時,則由 padding 主動補齊。
你只要知道 IP 表頭裡面還含有: TTL, Protocol, 來源 IP 與目標 IP 也就夠了! 而這個 IP 表頭的來源與目標
IP ,以及那個判斷通過多少路由器的 TTL ,就能瞭解到這個 IP 將被如何傳送到目的端吶。下一節我們將介紹一下那麼 IP
封包是如何被傳送到目的地?
在前幾個小節內談到的 IP 與路由的相關說明中,我們知道 IP 與路由僅能將資料封包傳送到正確的目標而已,
但是這個目的地是否真的能夠收下來這個封包?那可就不一定了。要確認該資料能否正確的被目的端所接收,
就必須要在資料封包上面多加一些參數來判斷才行。
在前面的 OSI 七層協定當中,在網路層的 IP 之上則是傳送層,而傳送層的資料打包成什麼? 最常見的就是 TCP 封包了。這個
TCP 封包資料必須要能夠放到 IP 的資料袋當中才行喔! 所以,我們可以將 MAC, IP 與 TCP
的封包資料這樣看:
圖十一、各封包之間的相關性
所以說,IP 除了表頭之外的 Data 內容其實就是 TCP 封包的表頭與內容;而 MAC 的 Data
內容, 就是一個完整的 IP 封包資料!這也是我們上頭提到的,最終還是得以 MAC 能夠支援的最大容許容量, 才能夠決定 IP 與
TCP 封包是否需要再進行分段的工作。那麼既然 MAC 與 IP 都有表頭資料, 想當然爾,TCP
也有表頭資料來記錄該封包的相關資訊囉??沒錯啦~ TCP 封包的表頭是長這個樣子的:
Source Port
Destination Port
Sequence Number
Acknowledge Number
Urgent Pointer
圖十二、TCP 封包的表頭資料
上圖就是一個 TCP 封包的表頭資料,各個項目以 Source Port, Destination Port 及
Code 算是比較重要的項目,底下我們就分別來談一談各個表頭資料的內容吧!
Source Port
& Destination Port ( 來源埠口 & 目標埠口
)什麼是埠口(port)?我們知道 IP 封包的傳送主要是藉由 IP
位址連接兩端, 但是到底這個連線的通道是連接到哪裡去呢?沒錯!就是連接到 port 上頭啦! 舉例來說,鳥站
(http://linux.vbird.org) 有開放 WWW 伺服器, 這表示鳥站的主機必須要啟動一個可以讓 client
端連接的端口,這個端口就是 port , 中文翻譯成為埠口。同樣的,用戶端想要連接到鳥哥的鳥站時,就必須要在 client
主機上面啟動一個 port ,這樣這兩個主機才能夠利用這條『通道』來傳遞封包資料喔! 這個目標與來源 port 的紀錄,可以說是
TCP 封包上最重要的參數了! 下個小單元我們還會繼續介紹。
Sequence Number ( 封包序號
)由於 TCP 封包必須要帶入 IP 封包當中,所以如果 TCP
資料太大時(大於 IP 封包的容許程度), 就得要進行分段。這個 Sequence Number 就是記錄每個封包的序號,
可以讓收受端重新將 TCP 的資料組合起來。
Acknowledge Number ( 回應序號
) 為了確認主機端確實有收到我們 client 端所送出的封包資料,我們
client 端當然希望能夠收到主機方面的回應,那就是這個 Acknowledge Number 的用途了。 當 client
端收到這個確認碼時,就能夠確定之前傳遞的封包已經被正確的收下了。
Data Offset
(資料補償)在圖十二倒數第二行有個 Options 欄位對吧!那個
Options 的欄位長度是非固定的, 而為了要確認整個 TCP 封包的大小,就需要這個標誌來說明整個封包區段的起始位置。
(保留)未使用的保留欄位。
Code (Control Flag,
控制標誌碼)當我們在進行網路連線的時候,必須要說明這個連線的狀態,好讓接收端瞭解這個封包的主要動作。
這可是一個非常重要的控制碼喔!這個欄位共有 6 個 bits ,分別代表 6 個控制碼,若為 1 則為啟動。分別說明如下:
URG(Urgent):若為 1
則代表該封包為緊急封包, 接收端應該要緊急處理,且圖十二當中的 Urgent Pointer 欄位也會被啟用。
ACK(Acknowledge):若為 1
代表這個封包為回應封包, 則與上面提到的 Acknowledge Number 有關。
PSH(Push function):若為
1 時, 代表要求對方立即傳送緩衝區內的其他對應封包,而無須等待緩衝區滿了才送。
RST(Reset):如果 RST 為 1
的時候, 表示連線會被馬上結束,而無需等待終止確認手續。這也就是說,這是個強制結束的連線, 且發送端已斷線。
SYN(Synchronous):若為 1
, 表示發送端希望雙方建立同步處理,也就是要求建立連線。通常帶有 SYN 標誌的封包表示『主動』要連接到對方的意思。
FIN(Finish):若為 1
,表示傳送結束, 所以通知對方資料傳畢,是否同意斷線,只是發送者還在等待對方的回應而已。
其中比較常見到的應該是 ACK/SYN/FIN 等,這三個控制碼是務必要記下來的, 這樣未來在談到防火牆的時候,您才會比較清楚為啥每個
TCP 封包都有所謂的『狀態』條件! 那就是因為連線方向的不同所致啊!底下我們會進一步討論喔!
(滑動視窗)主要是用來控制封包的流量的,可以告知對方目前本身有的緩衝器容量(Receive
Buffer) 還可以接收封包。當 Window=0 時,代表緩衝器已經額滿,所以應該要暫停傳輸資料。 Window 的單位是
Checksum(確認檢查碼)當資料要由發送端送出前,會進行一個檢驗的動作,並將該動作的檢驗值標注在這個欄位上;
而接收者收到這個封包之後,會再次的對封包進行驗證,並且比對原發送的 Checksum
值是否相符,如果相符就接受,若不符就會假設該封包已經損毀,進而要求對方重新發送此封包!
Pointer(緊急資料)這個欄位是在 Code 欄位內的
URG = 1 時才會產生作用。可以告知緊急資料所在的位置。
Options(任意資料)目前此欄位僅應用於表示接收端可以接收的最大資料區段容量,若此欄位不使用,
表示可以使用任意資料區段的大小。這個欄位較少使用。
Padding(補足欄位)如同 IP
封包需要有固定的 32bits 表頭一樣, Options 由於欄位為非固定, 所以也需要 Padding
欄位來加以補齊才行。同樣也是 32 bits 的整數。
TCP报文格式
&— TCP :( Transmission
Protocol)&&&&&面向连接的可靠传输协议,为用户应用端之间提供一个虚拟电路。
— 源端口(Source Port):呼叫端端口号
— 目端口(Destination Port):被叫端端口号
— 序列号(Sequence
Number):分配给报文的序号,用于跟踪报文通信顺序,确保无丢失
— 确认号(Acknowledgement
Number):所期待的下一个TCP报文的序列号,并表示
&&&&&&&&&&&&&&&&&&
对此序列前报文正确接收的确认
— 报头长度(HLEN):报文头部的字节数
— 保留域(Reserved):设置为0
— 编码位(Code
Bits):控制功能(如TCP连接的建立和终止)
— 窗口(Window):发送者同意接收的字节数
— 校验和(Checksum):报头和数据字段的校验和
— 紧急指针(Urgent Pointer):指示紧急数据段的末尾
— 选项(Option):当前定义TCP段的最大值
— 数据(Data):上层协议数据
TCP连接的建立实际上是一同步过程(又称三次握手)&&&
&三次握手:
1:主机A向主机B发出连接请求数据包
2:主机B向主机A发送同意连结和要求同步(一个在发送,一个在接收)
3:主机A要发出一数据包确认主机B的要求同步
源端口和目的端口:发送方和接收方的TCP端口号。
序号:该报文数据在发送方的数据流中的位置。当前时间值计算出一个数值作为起始序号。
首部长度:表示TCP报文首部信息的长度。由于首部可能含有选项内容,因此TCP首部的长度是不确定的。首部长度的单位是32位或4字节。首部长度实际上也指示了数据区在报文段中的起始偏移值。
码元比特:6位
URG、ACK、PSH、RST、SYN、FIN。
URG表示紧急指针字段有效;
ACK置位表示确认号字段有效;
PSH表示当前报文需要请求推(push)操作;
RST置位表示复位TCP连接;
SYN用于建立TCP连接时同步序号;
FIN用于释放TCP连接时标识发送方比特流结束
窗口:窗口通告值。发送方根据接收的窗口通告值调整窗口大小。
紧急指针:如果TCP通信中,一方有紧急的数据(例如中断或退出命令)需要尽快发送给接收方,并且让接收方的TCP协议尽快通知相应的应用程序,可以将URG置位,并通过紧急指针指示紧急数据在报文段中的结束位置。
校验和:与UDP校验和计算方法相同,同样需要包含伪首部。伪首部中的协议类型值为6。
选项:用于TCP连接双方在建立连接时协商最大的报文段长度MSS(Maximum
Segment Size)。
填充:为了使选项字段对齐32比特,可能采用若干位0作为填充数据。
UDP报文格式
&— UDP :( User
Datagram Protocol)无连接的非可靠传输协议
— 源端口(Source Port):呼叫端端口号
— 目端口(Destination Port):被叫端端口号
— 报头长度(HLEN):报文头部的字节数
— 校验和(Checksum):报头和数据字段的校验和
— 数据(Data):上层协议数据
UDP传输不提供ACK反向确认机制、流量和报文序列号控制,因此UDP报文可能会丢失、重复或无序到达,通信的可靠性问题将由应用层协议提供保障。但UDP报文格式和控制机制简单,因此通信开销比较小,TFTP、SNMP、NFS和DNS应用层协议等都是用UDP传输的。
对于UDP协议来说,整个包的最大长度为65535,其中包头长度是15;
对于TCP协议来说,整个包的最大长度是由最大传输大小(MSS,Maxitum Segment
Size)决定,MSS就是TCP数据包每次能够传
输的最大数据分段。为了达到最佳的传输效能TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的时候往往用MTU值代替(需
要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes)所以往往MSS为1460。通讯双方会根据双方提供的MSS值得最小值
确定为这次连接的最大MSS值。
对于IP协议来说,IP包的大小由MTU决定(IP数据包长度就是MTU-28(包头长度)。
MTU值越大,封包就越大,理论上可增加传送速率,但
MTU值又不能设得太大,因为封包太大,传送时出现错误的机会大增。一般默认的设置,PPPoE连接的最高MTU值是1492,
(Ethernet)的最高MTU值则是1500,而在Internet上,默认的MTU大小是576字节
UDP一次发送数据包的大小,TCP一次发送数据包的大小。
MTU最大传输单元,这个最大传输单元实际上和链路层协议有着密切的关系,EthernetII帧的结构DMAC+SMAC+Type+Data+CRC由于以太网传输电气方面的限制,每个以太网帧都有最小的大小64bytes最大不能超过1518bytes,对于小于或者大于这个限制的以太网帧我们都可以视之为错误的数据帧,一般的以太网转发设备会丢弃这些数据帧。
由于以太网EthernetII最大的数据帧是1518Bytes这样,刨去以太网帧的帧头(DMAC目的MAC地址48bit=6Bytes+SMAC源MAC地址48bit=6Bytes+Type域2bytes)14Bytes和帧尾CRC校验部分4Bytes那么剩下承载上层协议的地方也就是Data域最大就只能有1500Bytes这个值我们就把它称之为MTU。
PPPoE所谓PPPoE就是在以太网上面跑PPP协议,有人奇怪了,PPP协议和Ethernet不都是链路层协议吗?怎么一个链路层跑到另外一个链路层上面去了,难道升级成网络层协议了不成。其实这是个误区:就是某层协议只能承载更上一层协议。
为什么会产生这种奇怪的需求呢?这是因为随着宽带接入(这种宽带接入一般为Cable
Modem或者xDSL或者以太网的接入),因为以太网缺乏认证计费机制而传统运营商是通过PPP协议来对拨号等接入服务进行认证计费的.
PPPoE带来了好处,也带来了一些坏处,比如:二次封装耗费资源,降低了传输效能等等,这些坏处俺也不多说了,最大的坏处就是PPPoE导致MTU变小了以太网的MTU是1500,再减去PPP的包头包尾的开销(8Bytes),就变成1492。
UDP 包的大小就应该是 1492 - IP头(20) - UDP头(8) =
1464(BYTES)
TCP 包的大小就应该是 1492 - IP头(20) - TCP头(20)
= 1452(BYTES)
目前大多数的路由设备的MTU都为1500
编程的时候一定要注意哦,不能超过这两个值,否则你的传输效率就大打折扣了。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。哈工大 计算机网络与internet技术_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
93页免费68页免费55页免费44页免费38页免费35页免费32页免费66页免费9页免费4页免费
喜欢此文档的还喜欢113页5下载券42页5下载券6页免费53页5下载券18页2下载券
哈工大 计算机网络与internet技术|哈​工​大​ ​计​算​机​网​络​与​i​n​t​e​r​n​e​t​技​术
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢计算机中的协议和报文是什么
计算机中的协议和报文是什么
09-11-03 &匿名提问 发布
UDP协议的全称是用户数据报,在网络中它与TCP协议一样用于处理数据包。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据报分组、组装和不能对数据包的排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。为什么要使用UDP在选择使用协议的时候,选择UDP必须要谨慎。在网络质量令人不十分满意的环境下,UDP协议数据包丢失会比较严重。但是由于UDP的特性:它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。比如我们聊天用的ICQ和OICQ就是使用的UDP协议。在Java中操纵UDP使用位于JDK中Java.net包下的DatagramSocket和DatagramPacket类,可以非常方便地控制用户数据报文。在描述它们之前,必须了解位于同一个位置的InetAddress类。InetAddress实现了Java.io. Serializable接口,不允许继承。它用于描述和包装一个Internet IP地址,通过三个方法返回InetAddress实例:getLocalhost():返回封装本地地址的实例。getAllByName(String host):返回封装Host地址的InetAddress实例数组。getByName(String host):返回一个封装Host地址的实例。其中,Host可以是域名或者是一个合法的IP地址。DatagramSocket 类用于创建接收和发送UDP的Socket实例。和Socket类依赖SocketImpl类一样,DatagramSocket类的实现也依靠专门为它设计的DatagramScoketImplFactory类。DatagramSocket类有3个构建器:DatagramSocket():创建实例。这是个比较特殊的用法,通常用于客户端编程,它并没有特定监听的端口,仅仅使用一个临时的。DatagramSocket(int port):创建实例,并固定监听Port端口的报文。DatagramSocket(int port, InetAddress localAddr):这是个非常有用的构建器,当一台机器拥有多于一个IP地址的时候,由它创建的实例仅仅接收来自LocalAddr的报文。值得注意的是,在创建DatagramSocket类实例时,如果端口已经被使用,会产生一个SocketException的异常抛出,并导致程序非法终止,这个异常应该注意捕获。DatagramSocket类最主要的方法有4个:Receive(DatagramPacket d):接收数据报文到d中。receive方法产生一个“阻塞”。Send(DatagramPacket d):发送报文d到目的地。SetSoTimeout(int timeout):设置超时时间,单位为毫秒。Close():关闭DatagramSocket。在应用程序退出的时候,通常会主动释放资源,关闭Socket,但是由于异常地退出可能造成资源无法回收。所以,应该在程序完成时,主动使用此方法关闭Socket,或在捕获到异常抛出后关闭Socket。“阻塞”是一个专业名词,它会产生一个内部循环,使程序暂停在这个地方,直到一个条件触发。DatagramPacket 类用于处理报文,它将Byte数组、目标地址、目标端口等数据包装成报文或者将报文拆卸成Byte数组。应用程序在产生数据包是应该注意,TCP/IP规定数据报文大小最多包含65507个,通常主机接收548个字节,但大多数平台能够支持8192字节大小的报文。DatagramPacket类的构建器共有4个:DatagramPacket(byte[] buf, int length, InetAddress addr, int port):从Buf数组中,取出Length长的数据创建数据包对象,目标是Addr地址,Port端口。DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port):从Buf数组中,取出Offset开始的、Length长的数据创建数据包对象,目标是Addr地址,Port端口。DatagramPacket(byte[] buf, int offset, int length):将数据包中从Offset开始、Length长的数据装进Buf数组。DatagramPacket(byte[] buf, int length):将数据包中Length长的数据装进Buf数组。DatagramPacket类最重要的方法就是getData()了,它从实例中取得报文的Byte数组编码。★简单的实例说明{接收数据的服务器}byte[] buf = new byte[1000];DatagramSocket ds = new DatagramSocket(12345);//开始监视12345端口DatagramPacket ip = new DatagramPacket(buf, buf.length);
请登录后再发表评论!
1》什么是路由器 路由器是一种连接多个网络或网段的网络设备,它能将不同网络或网段之间的数据信息进行“翻译”,以使它们能够相互“读”懂对方的数据,从而构成一个更大的网络。 路由器有两大典型功能,即数据通道功能和控制功能。数据通道功能包括转发决定、背板转发以及输出链路调度等,一般由特定的硬件来完成;控制功能一般用软件来实现,包括与相邻路由器之间的信息交换、系统配置、系统管理等。 多少年来,路由器的发展有起有伏。90年代中期,传统路由器成为制约因特网发展的瓶颈。ATM交换机取而代之,成为IP骨干网的核心,路由器变成了配角。进入90年代末期,Internet规模进一步扩大,流量每半年翻一番,ATM网又成为瓶颈,路由器东山再起,Gbps路由交换机在1997年面世后,人们又开始以Gbps路由交换机取代ATM交换机,架构以路由器为核心的骨干网。2》路由器的原理与作用路由器是一种典型的网络层设备。它是两个局域网之间接帧传输数据,在OSI/RM之中被称之为中介系统,完成网络层中继或第三层中继的任务。路由器负责在两个局域网的网络层间接帧传输数据,转发帧时需要改变帧中的地址。一、原理与作用路由器(Router)是用于连接多个逻辑上分开的网络,所谓逻辑网络是代表一个单独的网络或者一个子网。当数据从一个子网传输到另一个子网时,可通过路由器来完成。因此,路由器具有判断网络地址和选择路径的功能,它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网,路由器只接受源 站或其他路由器的信息,属网络层的一种互联设备。它不关心各子网使用的硬件设备,但要求运行与网络层协议相一致的软件。路由器分本地路由器和远程路由器,本地路由器是用来连接网络传输介质的,如光纤、同轴电缆、双绞线;远程路由器是用来连接远程传输介质,并要求相应的设备,如电话线要配调制解调器,无线要通过无线接收机、发射机。一般说来,异种网络互联与多个子网互联都应采用路由器来完成。路由器的主要工作就是为经过路由器的每个数据帧寻找一条最佳传输路径,并将该数据有效地传送到目的站点。由此可见,选择最佳路径的策略即路由算法是路由器的关键所在。为了完成这项工作,在路由器中保存着各种传输路径的相关数据——路径表(Routing Table),供路由选择;时使用。路径表中保存着子网的标志信息、网上路由器的个数和下一个路由器的名字等内容。路径表可以是由系统管理员固定设置好的,也可以由系统动态修改,可以由路由器自动调整,也可以由主机控制。1.静态路径表   由系统管理员事先设置好固定的路径表称之为静态(static)路径表,一般是在系统安装时就根据网络的配置情况预先设定的,它不会随未来网络结构的改变而改变。2.动态路径表   动态(Dynamic)路径表是路由器根据网络系统的运行情况而自动调整的路径表。路由器根据路由选择协议(Routing Protocol)提供的功能,自动学习和记忆网络运行情况,在需要时自动计算数据传输的最佳路径。二、路由器的优缺点1.优点 适用于大规模的网络;复杂的网络拓扑结构,负载共享和最优路径;能更好地处理多媒体;安全性高;隔离不需要的通信量;节省局域网的频宽;减少主机负担。2.缺点 它不支持非路由协议; 安装复杂; 价格高。 三、路由器的功能(1)在网络间截获发送到远地网段的报文,起转发的作用。(2)选择最合理的路由,引导通信。为了实现这一功能,路由器要按照某种路由通信协议,查找路由表,路由表中列出整个互联网络中包含的各个节点,以及节点间的路径情况和与它们相联系的传输费用。如果到特定的节点有一条以上路径,则基于预先确定的准则选择最优(最经济)的路径。由于各种网络段和其相互连接情况可能发生变化,因此路由情况的信息需要及时更新,这是由所使用的路由信息协议规定的定时更新或者按变化情况更新来完成。网络中的每个路由器按照这一规则动态地更新它所保持的路由表,以便保持有效的路由信息。 (3)路由器在转发报文的过程中,为了便于在网络间传送报文,按照预定的规则把大的数据包分解成适当大小的数据包,到达目的地后再把分解的数据包包装成原有形式。(4)多协议的路由器可以连接使用不同通信协议的网络段,作为不同通信协议网络段通信连接的平台。(5)路由器的主要任务是把通信引导到目的地网络,然后到达特定的节点站地址。后一个功能是通过网络地址分解完成的。例如,把网络地址部分的分配指定成网络、子网和区域的一组节点,其余的用来指明子网中的特别站。分层寻址允许路由器对有很多个节点站的网络存储寻址信息。在广域网范围内的路由器按其转发报文的性能可以分为两种类型,即中间节点路由器和边界路由器。尽管在不断改进的各种路由协议中,对这两类路由器所使用的名称可能有很大的差别,但所发挥的作用却是一样的。中间节点路由器在网络中传输时,提供报文的存储和转发。同时根据当前的路由表所保持的路由信息情况,选择最好的路径传送报文。由多个互连的LAN组成的公司或企业网络一侧和外界广域网相连接的路由器,就是这个企业网络的边界路由器。它从外部广域网收集向本企业网络寻址的信息,转发到企业网络中有关的网络段;另一方面集中企业网络中各个LAN段向外部广域网发送的报文,对相关的报文确定最好的传输路径。我们通过一个例子来说明路由器工作原理。例:工作站A需要向工作站B传送信息(并假定工作站B的IP地址为120.0.5),它们之间需要通过多个路由器的接力传递。其工作原理如下:  (1)工作站A将工作站B的地址120.0.5连同数据信息以数据帧的形式发送给路由器1。  (2)路由器1收到工作站A的数据帧后,先从报头中取出地址120.0.5,并根据路径表计算出发往工作站B的最佳路径:R1-&R2-&R5-&B;并将数据帧发往路由器2。  (3)路由器2重复路由器1的工作,并将数据帧转发给路由器5。  (4)路由器5同样取出目的地址,发现120.0.5就在该路由器所连接的网段上,于是将该数据帧直接交给工作站B。  (5)工作站B收到工作站A的数据帧,一次通信过程宣告结束。事实上,路由器除了上述的路由选择这一主要功能外,还具有网络流量控制功能。有的路由器仅支持单一协议,但大部分路由器可以支持多种协议的传输,即多协议路由器。由于每一种协议都有自己的规则,要在一个路由器中完成多种协议的算法,势必会 降低路由器的性能。因此,我们以为,支持多协议的路由器性能相对较低。用户购买路由器时,需要根据自己的实际情况,选择自己需要的网络协议的路由器。近年来出现了交换路由器产品,从本质上来说它不是什么新技术,而是为了提高通信能力,把交换机的原理组合到路由器中,使数据传输能力更快、更好。3》接入路由器的几种选择王术敏本期的主题是探讨局域网搭建之后如何接入Internet的问题。虚拟场景为:一主干为百兆的以太网,数据点为200个。出于工作的需求,公司拟采用DDN专线方式接入Internet,同时采用ISDN或帧中继作为备份线路。这是一个中小型网络,用户数量不多,如何以合适的产品达到用户的需求是我们需要解决的问题。随着互联网时代的到来,仅搭建内部局域网已经不能满足众多企业的工作需求,有更多的用户需要在Internet上发布信息,或进行信息检索,将企业内部网接入Internet成为当前系统集成中常常碰到的工作项目之一。本期虚拟的是较为常见的环境,之所以如此设定这样一个典型场境,因为这是当前网络建设的一个重要增长点:中小企业网。我们都知道Internet(因特网)是当今世界上最大的国际性计算机广域网。其中包含不同的局域网类型。局域网接入广域网有很多方式,如普通电话拨号、卫星线路和数字网络等。而当计算机局域网与广域网要通过数字数据通信网(例如DDN、X.25、ISDN、帧中继等)进行互连时,通常采用路由器来实现。路由器是最重要的网络互连设备之一,它工作在网络层,用于互连不同类型的网络,使用路由器互连网络的最大特点是:各互连子网仍保持各自独立,每个子网可以采用不同的拓扑结构、传输介质和网络协议,网络结构层次分明。路由器的作用是在源节点和目的节点之间为数据交换选择路由,它提供了各种网络协议,路由器的功能主要有以下几种:(1)网络互连,路由器支持各种局域网和广域网接口,主要用于互连局域网和广域网;(2)数据处理,提供包括分组过滤、分组转发、优先级、复用、加密、压缩和防火墙等功能;(3)网络管理,路由器提供包括配置管理、性能管理、容错管理和流量控制等功能。由于各个企业以往大多停留于建设自己本身的内部计算机网络以提高工作效率、协同各部门工作,但随着Internet的迅猛发展,接入广域网或者是企业自身建设广域网已经越来越多地受到人们的关注。由此,路由器的使用频度得到了迅速提高。生产路由器的厂家很多,这个市场过去通常是国外的品牌一统天下,如Cisco,3Com ,Cabletron, Nortel Networks等公司。如今,随着互联网时代的到来,许多国内厂商也瞄准了计算机网络这个具有无限潜力的市场,纷纷推出自有品牌的网络产品。从技术含量较低的产品到具有高技术水平的产品,国内公司以不懈的努力证实了自己的实力,我们欣喜地看到市场上出现华为、联想、实达等品牌的路由器产品。思科系统公司(Cisco Systems)是路由器技术的领导者,在Internet上流动的数据大多都会通过Cisco的设备,其中绝大多数是Cisco的路由器。可以说Internet成就了Cisco的辉煌。Cisco的路由器有多种系列,就本文的虚拟场景而言,我们推荐使用Cisco 1600系列路由器。Cisco 1600系列路由器是Cisco公司为中小型网络接入Internet而量身定做的,是中小企业的理想选择。这是因为1600系列除了有一个固定的广域网端口和一个固定以太网端口之外,Cisco 1600系列还支持一个广域网接口卡,允许客户根据需要添加或改变广域网端口,非常灵活而且又提供了投资保护。其中Cisco 1601 R - 1604 R型路由器拥有一个以太网端口、一个内置的广域网端口以及一个用于可选的辅助广域网端口的插槽。1605 R路由器拥有2个以太网端口和1个广域网插槽。所有型号均带有可选的Cisco IOS 防火墙特性集。值得一提的是1600系列支持ISDN线路DDR按需拨号技术,只有在有效数据传输时,才进行拨号连接,在指定时间内无数据传输时自动断开连接,降低线路费用。这完全符合本期虚拟场景的需求,另外1600采用NAT技术可以让整个局域网200个用户同时上Internet,内置于IOS的防火墙功能可以保护内部网络,并节省用户在安全方面的投资。采用1600系列方案的特点和竞争优势:支持Cisco IOS 软件;具有闪存(PC卡)和内存更新功能,从而方便了软件维护。另外Cisco免费提供安装时需要的配置路由器网络工具;配有具有图形化界面Cisco ConfigMaker,可以简化设备配置和管理;Cisco产品采用FastStep配置实用程序(基于GUI)以简化安装和故障诊断;模块化的体系结构便于投资保护;完全的IOS支持,Cisco工业标准的网络解决方案;工业标准的IOS支持多种服务质量;接口卡与系列兼容方便灵活。华为自进入数据通信领域以来,已经推出了全系列的路由器产品,华为技术有限公司以华为自主品牌的网络核心技术为龙头,不断成长壮大,造就了今日出色的全系列网络产品。其中Quidway R1602 路由器比较满足本期的需求,是面向中小企业的产品。R1602接口丰富、灵活,报文处理能力强,配置维护简单。Quidway R1602 路由器具有一个RJ-45 Ethernet 接口,两个同/异步串口,一个备份口。用户可在PSTN/ISDN、Frame Relay、X.25和DDN等多种广域网技术中,灵活选择组网方案,这正适合本期的备份线路要求;另外它具有强大的报文处理能力,通过采用先进的CPU技术、高效的实时多任务操作系统以及独特的软件设计,使路由器报文处理能力非常强大;R1602路由器采用符合国际标准的网管系统:路由器的网络管理系统,符合国际SNMP标准,遵从于华为公司开发的统一的网络管理平台,便于集中网络管理;另外配有中英文双语配置界面:路由器提供的命令行用户接口,遵循业界流行的路由器配置方法,用户无需特 培训便可全面配置此产品,中文提示和帮助信息将大大便利国内广大用户;此外,R1602提供了丰富的网络安全特性,如防火墙、包过滤、地址转换、AAA和Radius等,用户可以选择不同的安全策略来组建企业网;而且R1602采用备份中心技术,网络可靠性明显增加:可利用同步或异步接口的特性,实现拨号线对专线的备份,保证对高可靠性网络的需求。根据本期场景要求还可以选择联想的LR-2501路由器。LR-2501路由器具有1个10M局域网(LAN)口,2个广域网(WAN)口和1个控制台端口。所以满足本场景需要备份线路的特点。广域网接口可以支持帧中继(Frame Relay)、X.25、PPP、HDLC等多种广域网协议,提供达T1/E1的传输速率,同时提供网络地址转换(NAT)的功能。支持PAD(X.3/X.28/X.29)协议;提供密码保护功能。基于此网络应用场景,可以选择3Com的OfficeConnect NETBuilder路由器,它是应用较多的机型之一。OfficeConnect NETBuilder拥有一个10BASE-T LAN端口(局域网端口)和两个WAN端口(广域网端口)。每个模块都有一个Flex WAN串行口,支持高达2.048 Mbps(T1/E1线路)的速率;还有如下类型的第二个WAN端口:ISDN S/T、集成了NT-1的ISDN、56/64KCSU/DSU、Ft1/T1 CSU/DSU,或者第二个端口是加一个Flex WAN端口。3Com OfficeConnect NETBuilder路由器有很多优点,其中比较突出的有:安装简便,3Com公司独特的边界路由(Boundary Routing)体系结构、自启动功能(Autostartup)以及Web链接、内嵌套于Web的配置和管理工具,使得即插即用的安装非常简便并且易于远端分支机构的使用;广泛的安全性,该系列路由器内嵌由ICSA认证的防火墙、保护内部地址安全的网络地址转换(NAT),支持IPSec和MPPE加密。OfficeConnect NETBuilder系列路由器通过对所有主要的WAN(广域网)协议的支持,能够适应各种规模的网络和多样化的连网需求,这些协议包括Frame Relay、X.25、PPP、ISDN、Async和SMDS。该系列路由器拥有灵活的迁移选项,以适应网络变更的需求。例如,当一个拥有边界路由器的小型分公司发展到需要IP/IPX支持时,路由器可以容易地升级到一台拥有上门软件升级服务的IP/IPX/AppleTalk路由器,而无须改动现有的硬件设备。如果您要求额外的带宽,则可以简单地通过更换CSU/DSU模块,将56/64KCSU/DSUWAN规格(12x K)升级到FT1/T1 WAN型号(12x T)。 由于本期的虚拟场景是一个典型网络,所以通过产品选型,可以看到本期采用的产 品是各个厂家都已成型的产品。同时我们可以看出中小企业网络的建设是众多厂商工作的重点之一,几乎每个厂商都有自己的相关产品。值得注意的是大多数厂商也不约而同地考虑了将来用户网络升级的问题,纷纷推出模块化的产品。这样无疑给用户带来了更多的选择,同时也充分保护了用户的投资。因为版面的问题,本期列出的只是众多产品的一部分,希望能给您一些帮助。4》正确识别五类双绞线随着快速以太网标准的推出和实施,五类双绞线开始广泛地应用于网络布线。但是由于个别厂商和网络公司在宣传上的误导,以及部分网络用户对有关标准缺乏必要的了解,致使在选用五类双绞线时真假难辨,不知所措。然而,一旦选用了不符合标准的五类双绞线,一方面会使网络整体性能下降,另一方面为将来网络的升级埋下了隐患。本文结合技术和应用,介绍标准五类双绞线的正确识别方法。 为了让大家对双绞线有个较全面的了解,我们先来介绍双绞线的常见类型及特性。计算机局域网中的双绞线可分为非屏蔽双绞线(UTP)和屏蔽双绞线(STP)两大类:STP外面由一层金属材料包裹,以减小辐射,防止信息被窃听,同时具有较高的数据传输速率,但价格较高,安装也比较复杂;UTP无金属屏蔽材料,只有一层绝缘胶皮包裹,价格相对便宜,组网灵活。除某些特殊场合(如受电磁辐射严重、对传输质量要求较高等)在布线中使用STP外,一般情况下我们都采用UTP。现在使用的UTP可分为3类、4类、五类和超五类四种。其中:3类UTP适应了以太网(10Mbps)对传输介质的要求,是早期网络中重要的传输介质;4类UTP因标准的推出比3类晚,而传输性能与3类UTP相比并没有提高多少,所以一般较少使用;五类UTP因价廉质优而成为快速以太网(100Mbps)的首选介质;超五类UTP的用武之地是千兆位以太网(1000Mbps)。根据目前网络布线的实际需要,本文主要介绍五类UTP的正确识别和选择方法。1.传输速度双绞线质量的优劣是决定局域网带宽的关键因素之一。某些厂商在五类UTP电缆中所包裹的是3类或4类UTP中所使用的线对,这种制假方法对一般用户来说很难辨别。这种所谓的“五类UTP”无法达到100Mbps的数据传输率,最大为10Mbps或16Mbps。一个简单的鉴别办法是用一条双绞线连接两台100Mbps的设备(网卡到网卡或网卡到HUB),通信时用Windows 95/98自带的monitor检测工具对其数据传输率进行监测。方法为:①选择“开始→程序→附件→系统工具→系统监视器”,将出现“系统监视器”窗口。如果在“系统工具”中没有“系统监视器”工具时,可通过“我的电脑→添加/删除程序→Windows安装程序→系统工具→系统监视器”建立。②在“系统监视器”窗口中设置监视对象。选择“编辑”菜单中的“添加项目”选项,在出现的对话框的“类别”列表中选择“Microsoft网络服务器”或“Microsoft网络客户”(注意:在保证网络连接正常的情况下),在下一个对话框中选择“写入的字节数/秒”或“读取的字节数/秒”。至于选择“Microsoft网络服务器”或“Microsoft网络客户”,还是“写入的字节数/秒”或“读取的字节数/秒”,读者可任意选择,因为在网络中一个节点发送出的数据应该等于另一个节点接收到的数据。③设置测试数据的输出方式。系统提供了折线图、条形图和数字图三种输出方式,可通过窗口工具栏内的按钮来选择。④进行测试。最有效的办法是从服务器向你进行测试的工作站上拷贝大量的文件(为了测试的准确性,所拷贝的内容一定要足够多)。一般来说,显示的峰值数值在4M/s以上,就基本可以肯定是五类网线了(3类线所能达到的峰值数值大约为2.5M/s)。2.电缆中双绞线对的扭绕应符合要求为了降低信号的干扰,双绞线电缆中的每一线对都是由两根绝缘的铜导线相互扭绕而成,而且同一电缆中的不同线对具有不同的扭绕度(就是扭绕线圈的数量多少),如图3所示。同时,标准双绞线电缆中的线对是按逆时针方向进行扭绕。但某些非正规厂商生产的电缆线却存在许多问题:①为了简化制造工艺,电缆中所有线对的扭绕密度相同;②线对中两根绝缘导线的扭绕密度不符合技术要求;③线对的扭绕方向不符合要求。如果存在以上问题,将会引起双绞线的近端串扰(指UTP中两线对之间的信号干扰程度),从而使传输距离达不到要求。双绞线的扭绕度在生产中都有较严格的标准,实际选购时,在有条件的情况下可用一些专业设备进行测量,但一般用户只能凭肉眼来观察。需说明的是,五类UTP中线对的扭绕度要比三类密,超五类要比五类密。除组成双绞线线对的两条绝缘铜导线要按要求进行扭绕外,标准双绞线电缆中的线对之间也要按逆时针方向进行扭绕。否则将会引起电缆电阻的不匹配,限制了传输距离。这一点一般用户很少注意到。有关五类双绞线电缆的扭绕度和其他相关参数,有兴趣的读者可查阅TIA/EIA 568A(TIA/EIA 568是ANSI于1996年制定的布线标准,该标准给出了网络布线时有关基础设施,包括线缆、连接设备等的内容。字母“A”表示为IBM的布线标准,而AT&T公司用字母“B”表示。)中的具体规定。3.五类双绞线应该是多少对?以太网在使用双绞线作为传输介质时只需要2对(4芯)线就可以完成信号的发送和接收。在使用双绞线作为传输介质的快速以太网中存在着三个标准:100Base-TX、100Base-T2和100Base-T4。其中:100Base-T4标准要求使用全部的4对线进行信号传输,另外两个标准只要求2对线。而在快速以太网中最普及的是100Base-TX标准,所以你在购买100M网络中使用的双绞线时,不要为图一点小便宜去使用只有2个线对的双绞线。在美国线缆标准(AWG)中对3类、4类、五类和超五类双绞线都定义为4对,在千兆位以太网中更是要求使用全部的4对线进行通信。所以,标准五类线缆中应该有4对线。4.仔细观察在具备了以上知识后,识别五类UTP时还应注意以下几点:①查看电缆外面的说明信息。在双绞线电缆的外面包皮上应该印有像“AMP SYSTEMS CABLE……24AWG……CAT5”的字样,表示该双绞线是AMP公司(最具声誉的双绞线品牌)的五类双绞线,其中24AWG表示是局域网中所使用的双绞线,CAT5表示为五类;此外还有一种NORDX/CDT公司的IBDN标准五类网线,上面的字样就是“IBDN PLUS NORDX/CDX……24 AWG……CATEGORY 5”,这里的“CATEGORY 5”也表示五类线(CATEGORY是英文“种类”的意思)。笔者曾经用过一箱没有标明类别的所谓五类线,经实测只能达到3类线的标准;②是否易弯曲。双绞线应弯曲自然,以方便布线;③电缆中的铜芯是否具有较好的韧性。为了使双绞线在移动中不致于断线,除外皮保护层外,内部的铜芯还要具有一定的韧性。同时为便于接头的制作和连接可靠,铜芯既不能太软,也不能太硬,太软不易接头的制作,太硬则容易产生接头处断裂;④是否具有阻燃性。为了避免受高温或起火而引起的线缆损坏,双绞线最外面的一层包皮除应具有很好的抗拉特性外,还应具有阻燃性(可以用火来烧一下测试:如果是正品,胶皮会受热松软,不会起火;如果是假货,一点就着)。为了降低制造成本,非标准双绞线电缆一般采用不符合要求的材料制作电缆的包皮,不利于通信安全。
请登录后再发表评论!}

我要回帖

更多关于 icmp报文格式 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信