目錄
1. 埠號
2. 埠號被劃分為三段
3. 套接字
4. 對於併發伺服器,往往無法僅僅通過檢視目的埠號來分離外來分節到不同端點
5. 緩衝區大小及限制
6. tcp輸出
7. udp輸出
8. sctp輸出
9. 常見網際網路應用的協議使用
(1) 眾所周知的埠號:0~1023,用於標識眾所周知的服務。
(2)已登記的埠:1024~49151。
(3)動態或私用埠:49152~65535。
套接字對:對於乙個tcp連線,套接字對指的是定義該連線的兩個端點的四元組:本地ip和port,外地ip和port。套接字對唯一標識乙個網路上的每個tcp連線。表示方法
(1) ipv4資料報的最大大小為65535位元組,包括ipv4首部。ipv6為65575位元組,包括40位元組的ipv6首部。這是因為ipv6的淨荷長度欄位不包括ipv6首部,而ipv4的總長度字段包括ipv4首部。
(2)許多網路有乙個可由硬體規定的mtu(最大傳輸單元)。兩個主機之間的路徑中最小的mtu稱為路徑mtu。
(3)當乙個資料報將從某個介面送出時,如果超過相應鏈路的mtu,ipv4主機對其產生的資料報分片,ipv4路由對其**的資料報分片。ipv6只有主機對其產生的資料報分片,ipv6路由不對其**的資料報分片。ipv4首部有乙個「不分片」df位,若被設定,那麼不管是傳送資料報的主機還是**的路由器,都不允許對它們分片。當路由器收到乙個超過其外出鏈路mtu大小且設定了df位的ipv4資料報時,路由器將返回乙個icmpv4出錯訊息。每個ipv6資料報隱含乙個df位,同理產生乙個icmpv6出錯訊息。
(4)ipv4和ipv6都定義了最小重組緩衝區大小(min reassenbly size),保證了最小資料報大小。ipv4為576位元組,ipv6為1500位元組。
(5)tcp有乙個mss(最大分節大小),用於向對端tcp通告你能在每個分節中傳送的最大tcp資料量,從而避免分片。如果對端mss加上ipv4/6首部位元組,再加上tcp首部位元組,往往等於mtu。本端tcp以mss大小的或更小的塊把資料傳給ip,同時給每塊資料安上乙個tcp首部,構成tcp分節,然後安上ip首部,構成ip資料報傳送。
每個tcp套接字有乙個傳送緩衝區,我們可以使用so_sndbuf套接字選項來更改該緩衝區大小。呼叫write函式時,如果該緩衝區已滿,當為阻塞套接字時,該程序將被投入睡眠,核心將不從write返回。當為非阻塞套接字時,返回錯誤**,需要自行處理(如適當時機再次傳送)。本端的緩衝區需要對端的ack不斷的到達來確認資料已收到,才丟棄已確認的資料。tcp必須為已傳送的資料保留乙個副本,直到它被對端確認為止。
udp是不可靠的,它不必儲存應用程序的資料的乙個副本,因此無需乙個真正的傳送緩衝區。任何udp套接字都有乙個傳送緩衝區大小,不過它僅僅是可寫到該套接字的udp資料報的大小上限。如果乙個程序寫乙個大於套接字傳送緩衝區大小的資料報,核心會返回該程序乙個emsgsize錯誤。
見tcp輸出,十分類似。
傳輸層和TCP UDP
層傳輸層 定義了一些傳輸資料的協議和埠號 www埠80等 如 tcp 傳輸控制協議,傳輸效率低,可靠性強,用於傳輸可靠性要求高,資料量大的資料 udp 使用者資料報協議,與tcp特性恰恰相反,用於傳輸可靠性要求不高,資料量小的資料,如qq聊天資料就是通過這種方式傳輸的 主要是將從下層接收的資料進行分...
第二章傳輸層 TCP UDP 和SCTP
第二章傳輸層 tcp udp 和sctp udp是乙個簡單的 不可靠的傳輸協議,而tcp是乙個複雜 可靠的位元組流協議。icmp 含義 icmp是 internet control message protocol internet控制報文協議。它是tcp ip協議族的乙個子協議,用於在ip主機 路...
第二章 傳輸層 TCP UDP和SCTP 1
1.tcp ip協議族總圖 ipv4 網際協議版本4 internet protocol version 4 使用32位位址。ipv4給tcp udp sctp icmp和igmp提供分組遞送服務。ipv6 網際協議版本6 internet protocol version 6 使用128位位址。給...