当前位置: 首页 > news >正文

吉安网站设计青岛seo外包公司

吉安网站设计,青岛seo外包公司,展台设计网站都有哪些,系统app定制开发目录 一,再谈端口号 1.1 端口号 1.2 netsta命令 二,UDP协议 2.1 关于UDP 2.2 Udp协议格式 2.3 Udp协议特点 2.4 Udp的缓冲区 一,再谈端口号 http协议本质是“请求 - 响应”形式的协议,但是应用层需要先将数据交给传输层&…

目录

一,再谈端口号

1.1 端口号

1.2 netsta命令

二,UDP协议

2.1 关于UDP

2.2 Udp协议格式

2.3 Udp协议特点

2.4 Udp的缓冲区


一,再谈端口号

http协议本质是“请求 - 响应”形式的协议,但是应用层需要先将数据交给传输层,然后由传输层对数据做进一步处理后再将数据继续向下层交付,最终贯穿整个网络协议栈,最终就发送到了网络当中

传输层负责可靠性传输,确保数据能够可靠地传送到目标地址。

1.1 端口号

  • 在TCP/IP协议中,用“源IP”,“源端口号”,“目的IP”,“目的端口号”,“协议号”这样一个五元组来标识一个通信
  • 0 - 1023这些端口号被称为知名端口号,HTTP,FTP,SSH等这些广为使用的应用层协议,它们的端口号都是固定的(ssh服务器是22端口,ffp是21,telnet是23,smtp邮件协议是25,mysql数据库是3306,这些都是常用的服务器,为了方便使用它们都用固定的端口号)
  • 1024 - 65535是操作系统动态分配的端口号,客户端程序的端口号,就是由操作系统从这个返回分配的

通过netstat命令可以查看到这样地五元组信息:

出了netstat命令,我们也可以查看 /etc/services 文件,查看网络服务名和它们对应使用地端口号和协议:

1.2 netsta命令

netstat命令

 这个我们上面已经用过了,是查看网络状态地重要命令,下面是选项介绍:

  • n:拒绝显示别名,能显示数字的全部转为数字
  • l:仅列出处于LISTEN监听状态的服务
  • p:显示建立相关链接的程序名
  • t:仅显示协议号为tcp相关的选项
  • u:仅显示协议号为udp相关的选项
  • a:显示所有选项,默认不显示LISTEN相关

我们查看Tcp相关网络信息时,一般用nltp;查看Udp时,一般用nlup

二,UDP协议

2.1 关于UDP

我们前面用的各种sock API,都是系统提供的,我们可以通过这些接口搭建上层应用,比如http就是基于Tcp的,因为http就是再Tcp套接字基础上搭建的

应用层往下就是传输层,也是属于操作系统的,所以也由操作系统管理,所以Udp是存在与内核中的,是操作系统的网络协议栈自带的,所以也就是说,Udp所有的功能由操作系统完成

2.2 Udp协议格式

下面是Udp协议报头的图形化:

  •  16位源端口号:表示数据从哪里来
  • 16位目的端口号:表示数据要去哪里
  • 16位UDP长度:表示整个数据报的长度(UDP首部 + UDP数据)
  • 16位UDP校验和:如果UDP报文的检验出错,就会直接将报文丢弃

我们之前就说过,学习任何协议,都要回答下面两个问题:

问题:UDP如何将报头和有效载荷分离?

解答:UDP采用的是定长报头,报头是操作系统加的,所以分离报头时就会简单很多

问题:UDP协议如何将有效载荷交付给上层哪一个协议?

解答: 应用层每一个网络进程都会绑定一个端口,服务器是绑定固定报头,客户端是绑定随机报头,所以UDP就是通过报头当中的“16为目的端口号”来找到对应的进程的,该操作是通过哈希的映射完成的

操作系统是C语言为底层语言,所以UDP协议也一定是用C语言写的,UDP报头实际就是一个位段类型,例如:

 

struct udp_struct
{uint32_t src_port:16;uint32_t dst_poet:16;uint32_t length:16;uint32_t check_code:16;
};
  • 这个东西我们在语言上叫做“位段”,在协议上叫做“UDP报头”,是自定义类型,是类型,可以定义变量,也可以new开辟空间(struct udp_header h;    h.src_port=1234;    h.dst=8888等等)

  • 然后操作系统里就存在着大量的UDP报文,先描述再组织,所以操作系统内是有着很多描述报文的结构体的,这个结构体叫做 sk_buff,所以操作系统在封装报文时,先定义一个缓冲区,然后把udp_struct里的东西拷贝进来

  • 然后再把用户要发送的数据拷贝进来,然后sk_buff里面的start指向缓冲区开头,end指向缓冲区结尾,然后我们对还没来得及发的UDP报文用sk_buff描述起来,然后把很多个sk_buff结构体用链表组织起来

  • 当接收缓冲区满了就丢弃UDP,也就是干掉对应的sk_buff然后释放掉udp_struct

  • 把报文往上下层交付,也就是把结构体叫做IP层对应的一套方法,然后对缓冲区的数据再做封装

关于位段可以看咱远古时期的一篇文章:C语言进阶——自定义类型_c语言自义类型-CSDN博客 

2.3 Udp协议特点

  • 无连接:知道目的IP和端口就行,直接进行传送,不需要建立连接
  • 不可靠:没有确认机制,也没有重传机制,如果因为网络问题导致数据没有完整发给对方,也不会有任何报错
  • 面向数据报:不够灵活的控制读写数据的次数和数量

面向数据报:应用层交给UDP多长的报文,UDP原样发送,不做任何的拆分和合并

比如用UDP传输100字节的数据:

  • 发送端调用sendto,发100个字节,那么接受端必须调用recvfrom一次接收100个,而不能调用10此recvfrom一次接收10个 

2.4 Udp的缓冲区

  • UDP没有真正意义上的发送缓冲区,调用sendto会直接交给内核,然后再由内核将数据贯穿协议栈进行后续的传输动作
  • UDP具有接收缓冲区,但是一旦缓冲区满了,后续到达的UDP数据会直接丢弃
  • UDP的socket能读能写,所以UDP是全双工的
http://www.hkea.cn/news/516361/

相关文章:

  • 贵阳网站建设贵阳百度推广怎么推广
  • 瓮安建设局网站google play三件套
  • 大型门户网站模板营销神器
  • 学设计的网站都有哪些seo和sem
  • 如何做网站流量买卖营销型网站的特点
  • 装修设计网站哪个平台最好软文推广多少钱一篇
  • 怎么做微信里的网页网站链接网站设计平台
  • 长宁专业做网站网络营销案例分享
  • 哈尔滨专业建网站哪家好码迷seo
  • 涞水县住房和城乡建设局网站厦门seo专业培训学校
  • 网站建设销售招聘德阳seo
  • 平台网站建设的公司seozou是什么意思
  • wordpress 相册 主题seo整站优化技术培训
  • 做窗帘网站图片百度自动点击器下载
  • 飘雪影视大全免费观看视频快推达seo
  • 做网站的装饰标语seo宣传网站
  • 国外 平面设计 网站百度收录
  • 做网站话术简述搜索引擎的工作原理
  • 现在建设网站赚钱吗seo外链论坛
  • 青海网站建设企业海南百度竞价推广
  • 南京做网站yuanmus电脑突然多了windows优化大师
  • 美国做deals的网站软文营销经典案例优秀软文
  • 招标网站怎么做吴江seo网站优化软件
  • 苏州建设工程协会网站seo去哪里学
  • 上海正规网站制作价格可口可乐软文营销案例
  • 番禺网站 建设信科网络站长之家ping
  • 建筑工程施工承包合同关键词优化报价推荐
  • 网站可以免费看企业网站系统
  • 中华人民共和国建设部网站seo怎么快速提高排名
  • 南宁做网站的有几家东莞网络营销网站建设