網路協議棧7 connect 函式之前之IP

2021-09-08 23:02:39 字數 1777 閱讀 9587

網路協議棧7:connect()函式之前之ip

tcp的下一層,就是ipinternet protocol,網路協議),ip的結構圖和結構體如下:

ip首部結構體

struct iphdr ;

ip首部主要記錄了鏈路連線兩端的ip位址,也就相當於記錄了兩個網絡卡,而一般情況下,也等於記錄兩台主機。

我們知道,在windows/linux作業系統下,網絡卡的ip位址是可以任意設定的,比如在同一網段下,可以把網絡卡ip設定成192.168.1.2,也可以設定成192.168.1.100等等,但是這兩個ip所代表的都是同一張網絡卡,可以任意設定的ip位址是如何代表了同一張網絡卡呢?原因是這樣的,由於每張網絡卡本身都有乙個實體地址,一般情況下這個實體地址是被寫在網絡卡的韌體裡的,是修改不了的,(其實有些是可以改動的,但只要保證在同一網段中沒有兩張網絡卡使用相同的實體地址即可),而可以改變的ip位址,總是關聯到不可以改變的實體地址上的,所以,我們總有辦法通過可變的ip位址,找到固定的實體地址,進而使用這個唯一的實體地址作為唯一的位址進行接收和傳送,這個過程就是arpaddress resolution protocol,位址解析協議),通過ip位址,以廣播的形式在網路中查詢對應於這個ip位址的實體地址。

ip協議的目的,就是根據上層協議的型別,盡快的把資料傳輸到對應的協議,由對應的協議來進行處理,比如tcp協議,或者udp協議,而它不對資料進行處理(防火牆除外),或者在下傳資料時,盡快的把資料傳送給鏈路層,而保證資料的準確性等,都不是它的功能,它主要功能,就是盡可以快的把資料傳送出去,是乙個承上啟下的層次。

網路協議棧7 connect 函式之前之IP

網路協議棧7 connect 函式之前之ip tcp的下一層,就是ip internet protocol,網路協議 ip的結構圖和結構體如下 ip首部結構體 struct iphdr ip首部主要記錄了鏈路連線兩端的ip位址,也就相當於記錄了兩個網絡卡,而一般情況下,也等於記錄兩台主機。我們知道,...

網路協議棧11 Connect函式分解之TCP層

connect函式之分解1.首先,connect函式從引數獲得遠端的ip,把這個位址賦值給對應的sock結構體的對應變數,並設定了sock結構體中的一些其他變數後,首先分配 skb buff 使用者空間 大小記憶體,這兩部分是通過呼叫kmalloc sizeof struct skb buff si...

網路程式設計 connect函式

1 connect描述 定義函式 int connect int sockfd,struct sockaddr serv addr,int addrlen connect函式通常用於客戶端建立tcp連線。返回值 成功則返回0,失敗返回 1,錯誤原因存於errno中。錯誤 ebadf 引數sockfd...