成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

UDP:用戶數據報

網絡 網絡管理
UDP是一個簡單的面向數據報的運輸層協議:進程的每個輸出操作通常會產生一個UDP數據報,并組裝成一份待發送的IP數據報。

UDP是一個簡單的面向數據報的運輸層協議:進程的每個輸出操作通常會產生一個UDP數據報,并組裝成一份待發送的IP數據報。這與面向流的協議不同,如TCP,應用程序產生的數據與真正發送的單個IP數據報并不存在直接的關聯。

UDP輸入和輸出以及輕量級UDP涉及以下文件:

include/net/udplite.h 定義輕量級UDP專用的函數等

include/linux/udp.h 定義UDP傳輸控制塊等

net/ipv4/udp.c UDP協議的實現

net/ipv4/udplite.c 輕量級UDP的實現

net/core/sock.c 實現傳輸層通用的函數

net/ipv4/datagram.c 實現UDP的connect調用

net/ipv4/af_inet.c 網絡層和傳輸層接口

UDP的輸入與輸出

 

[[125609]]

 

UDP函數之間調用關系比TCP簡單的多,和TCP一樣,sock結構中的sk_receive_queue成員是UDP的接收隊列,通常情況下,接收到UDP數據報會緩存到此,等待用戶進程的讀取。UDP接收到數據報后的處理要比TCP簡單的多,通過校驗的UDP數據報,根據類型做不同的處理后被添加到接收隊列。

UDP傳輸控制塊

  1. struct udp_sock {   
  2.     /* inet_sock has to be the first member */   
  3.     struct inet_sock inet;   
  4.     int      pending;   /* Any pending frames ? */   
  5.     unsigned int     corkflag;  /* Cork is required */   
  6.     __u16        encap_type;    /* Is this an Encapsulation socket? */   
  7.     /*  
  8.      * Following member retains the information to create a UDP header  
  9.      * when the socket is uncorked.  
  10.      */   
  11.     __u16        len;       /* total length of pending frames */   
  12.     /*  
  13.      * Fields specific to UDP-Lite.  
  14.      */   
  15.     __u16        pcslen;   
  16.     __u16        pcrlen;   
  17. /* indicator bits used by pcflag: */   
  18. #define UDPLITE_BIT      0x1        /* set by udplite proto init function */   
  19. #define UDPLITE_SEND_CC  0x2        /* set via udplite setsockopt         */   
  20. #define UDPLITE_RECV_CC  0x4        /* set via udplite setsocktopt        */   
  21.     __u8         pcflag;        /* marks socket as UDP-Lite if > 0    */   
  22.     __u8         unused[3];   
  23.     /*  
  24.      * For encapsulation sockets.  
  25.      */   
  26.     int (*encap_rcv)(struct sock *sk, struct sk_buff *skb);   
  27. };   

struct inet_sock inet

udp_sock由inet_sock結構擴展而來

int pending

發送狀態,其值只能是0或AF_INET,0表示數據已經從UDP套接口發送到IP層,可以繼續調用sendmsg()發送數據,AF_INET表示UDP正在處理調用sendmsg()的發送數據,不需要處理目的地址、路由等信息,直接處理UDP數據

unsigned int corkflag

0 有數據需要發送時,立即發送出去

非0 將UDP數據組成一個單一64KB的UDP數據報后將其發送出去,因此會有延遲

__u16 len

從UDP套接口發送數據到IP層時,標識待發送數據的長度

__u16pcslen

__u16 pcrlen

輕量級UDP,通過UDPLITE_SEND_CSCOV和UDPLITE_RECV_CSCOV選項設置,用于實現控制發送和接收校驗和的執行

0 表示對發送/接收的整個UDP-Lite數據包進行校驗

>>=8 表示對發送/接收的UDP-Lite包的前pcslen/pcrlen個字節進行校驗

其他值是非法的

UDP的狀態

UDP的傳輸是沒有狀態的,但事實上,UDP和RAW也借用了TCP的一些值:在一個套接口創建之初,其狀態是TCP_CLOSE,當UDP套接口調用connect()后,狀態改變為TCP_ESTABLISHED,***,關閉套接口時又置回TCP_CLOSE,RAW也一樣。

輕量級UDP

2.6.20版本的Linux支持UDP-Lite。UDP-Lite協議相對較新,與UDP協議類似,但更適應網絡差錯率較大而應用對輕微差錯不敏感的情況,例如實時視頻播放等。那么UDP-Lite與傳統的UDP有什么不同呢?傳統的UDP協議對其負載(Payload)作完整的校驗,如果其中的哪怕只有一位發生了變化,那么整個數據包就有可能被丟棄,在某些情況下,丟掉一個這樣的包代價是非常大的,尤其當數據包比較大的時候。在UDP-Lite協議中,一個數據包到底需不需對其負載進行校驗,或者是校驗多少位都是由用戶控制的,

Linux對UDP-Lite協議的支持也是通過在原來的UDP協議的基礎上添加了一個setsockopt選項來實現控制發送/接收 Checksum Coverage的

int val = 20;

setsockopt(s, SOL_UDPLITE, UDPLITE_SEND_CSCOV, &val, sizeof(int));

int min = 20;

setsockopt(s, SOL_UDPLITE, UDPLITE_RECV_CSCOV, &min, sizeof(int));

創建一個輕量級UDP套接口很簡單

s = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDPLITE);

責任編輯:林琳 來源: CSDN博客
相關推薦

2014-12-04 09:32:08

UDP

2019-06-24 07:34:38

數據報協議UDPIP

2011-03-25 15:21:43

2021-01-20 23:40:27

數據泄露OpenWRT攻擊

2023-10-23 19:18:05

2021-05-11 11:05:58

蘋果iOS隱私

2015-10-19 18:18:44

2022-12-01 12:14:09

2021-01-06 10:01:09

數據泄露漏洞信息安全

2022-11-29 16:29:50

設備開發UDP

2021-04-02 11:09:35

MobiKwik 移動支付數據泄露

2015-10-30 17:58:43

用戶數據收集信息安全WhatsApp

2016-03-16 10:56:12

數據營銷數據分析LinkedIn

2019-08-14 16:08:43

大數據安全互聯網

2010-11-04 10:06:27

GSMMTN華為

2022-01-12 17:37:42

微軟漏洞macOS

2014-12-25 14:02:24

12306數據泄露信息泄露

2010-11-29 15:35:31

sybase創建用戶

2021-11-11 12:02:19

消費物聯網數據管理物聯網

2012-07-02 09:39:27

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91久久精品一区二区二区 | 国产一区二区影院 | 日韩一级二级片 | 国产精品久久久久一区二区 | 国产黄色在线观看 | 国产一级在线 | 国产精品久久久久久 | 亚洲欧美日韩电影 | 伊人在线 | 国产精品久久久久免费 | 国产精品久久久久影院色老大 | 成人亚洲网 | 国产欧美视频一区二区 | 欧美福利影院 | 人人人干| 一区二区在线不卡 | 雨宫琴音一区二区在线 | 狠狠躁躁夜夜躁波多野结依 | 国产传媒在线观看 | 日韩在线精品视频 | 免费看黄色片 | 国产精品一区一区 | 国产精品99久久久久久www | 日本久久久影视 | 亚洲精品在线看 | 精品国产欧美一区二区三区成人 | 国产精品一区二区在线播放 | 久久久久久久综合色一本 | 91在线播| 精品无码久久久久久久动漫 | 欧美日韩中文国产一区发布 | 北条麻妃一区二区三区在线视频 | 91美女在线观看 | 久久久123 | 亚洲成人免费视频 | 紧缚调教一区二区三区视频 | 亚洲国产精品日韩av不卡在线 | 久久国产综合 | 一区二区三区四区五区在线视频 | 欧美 日韩 国产 成人 在线 | 91精品一区 |