潍坊的网站建设自媒体采集网站建设
2026/1/10 14:55:10 网站建设 项目流程
潍坊的网站建设,自媒体采集网站建设,创业怎么做网站,全国工程建设信息服务平台一、 传输层与端口号传输层传输层的核心任务是负责数据能够从发送端传输到接收端 。为了方便理解#xff0c;在学习传输层协议时也可以简单的认为传输层协议是将数据直接发送到了网络当中。而为了区分一台主机上运行的不同应用程序#xff0c;我们需要引入端口号的概念。再谈…一、 传输层与端口号传输层传输层的核心任务是负责数据能够从发送端传输到接收端 。为了方便理解在学习传输层协议时也可以简单的认为传输层协议是将数据直接发送到了网络当中。而为了区分一台主机上运行的不同应用程序我们需要引入端口号的概念。再谈端口号端口号的本质及作用端口号标识了一台主机上进行通信的不同的应用程序 。当主机从网络中获取到数据后需要自底向上进行数据的交付而这个数据最终应该交给上层的哪个应用处理程序就是由该数据当中的目的端口号来决定的。从网络中获取的数据在进行向上交付时在传输层就会提取出该数据对应的目的端口号进而确定该数据应该交付给当前主机上的哪一个服务进程。因此端口号是属于传输层的概念的在传输层协议的报头当中就会包含与端口相关的字段。五元组标识在 TCP/IP 协议中使用{源IP, 源端口号, 目的IP, 目的端口号, 协议号}这五个信息来唯一识别一个通信 。比如有多台客户端主机同时访问服务器这些客户端主机上可能有一个客户端进程也可能有多个客户端进程它们都在访问同一台服务器。而这台服务器就是通过上述的五元组来识别一个通信的。先提取出数据当中的目的IP地址和目的端口号确定该数据是发送给当前服务进程的。然后提取出数据当中的协议号为该数据提供对应类型的服务。最后提取出数据当中的源IP地址和源端口号将其作为响应数据的目的IP地址和目的端口号将响应结果发送给对应的客户端进程。通过netstat命令可以查看到这样的五元组信息。端口号的范围划分端口号是一个 16 位的整数主要分为两类 知名端口号 (0 - 1023)这些端口分配给广为使用的应用层协议如 HTTP, SSH 等是固定的我们自己写程序时必须避开这些端口 。动态端口号 (1024 - 65535)通常由操作系统动态分配客户端程序的端口号就是从这个范围里拿的 。常见知名端口号服务名称端口号说明FTP21文件传输协议SSH22安全外壳协议Telnet23远程终端协议SMTP25邮件发送协议HTTP80超文本传输协议HTTPS443安全的 HTTP我们可以查看/etc/services文件该文件是记录网络服务名和它们对应使用的端口号及协议。文件中的每一行对应一种服务它由4个字段组成每个字段之间用TAB或空格分隔分别表示“服务名称”、“使用端口”、“协议名称”以及“别名”。一个端口号是否可以被多个进程绑定一个端口号绝对不能被多个进程绑定端口号的作用是唯一标识一个进程。如果允许多个进程绑定同一端口会导致数据接收时的歧义。一个进程是否可以绑定多个端口号这并不违反“端口号唯一标识进程”的原则。比如端口 A 标识进程 X端口 B 也标识进程 X两者互不冲突。也就是说端口号与进程的关系为“多对一”是允许的“一对多”是禁止的。netstat命令在编写网络程序时我们经常需要查看当前的 socket 状态netstat是最常用的命令。常用选项选项含义记忆技巧-nNumeric(拒绝域名解析)直接显示 IP 地址和端口号不解析成域名或服务名如显示 80 而不是 http。-lListening(仅显示监听中)只显示处于监听状态Listening的 socket常用于检查 Server 是否启动成功。-pPID(显示进程信息)显示建立相关链接的程序名和 PID。需要 sudo 权限才能看到全部信息。-aAll(显示所有)显示所有连接包括正在监听的和已建立连接的。-uUDP仅显示 UDP 相关的连接。-tTCP仅显示 TCP 相关的连接。(1) 查看所有 UDP 端口绑定情况如果你写了一个 UDP Server想看它是否成功 bind 到了指定端口使用netstat -nlpu(2) 查看特定端口是否被占用比如你想查 8080 端口被谁占用了使用netstat -nltp | grep 8080iostat命令主要用于输出 CPU 和 磁盘 I/O 的统计信息。常用选项选项含义场景-cCPU仅显示 CPU 统计信息。-dDisk仅显示磁盘统计信息。-k / -mKB / MB以 KB 或 MB 为单位显示传输速率默认是块/Block。-xExtended显示扩展的磁盘详细统计信息主要看%util。t nTime / Number每隔t秒刷新一次共刷新n次。例如iostat 1 5。CPU属性值说明%userCPU处在用户模式下的时间百分比。%niceCPU处在带NICE值的用户模式下的时间百分比。%systemCPU处在系统模式下的时间百分比。%iowaitCPU等待输入输出完成时间的百分比。%steal管理程序维护另一个虚拟处理器时虚拟CPU的无意识等待时间百分比。%idleCPU空闲时间百分比。pidof 命令pidof命令可以通过进程名查看进程id。于是可以配合kill命令快速杀死一个进程。二、 UDP 协议UDP 协议格式UDP 的报文结构非常简单首部只有 8 字节 16位源端口号表示数据从哪里来。16位目的端口号表示数据要到哪里去。16位UDP长度表示整个数据报UDP首部UDP数据的长度。16位UDP检验和如果UDP报文的检验和出错就会直接将报文丢弃。UDP 的三大核心特点UDP 的传输过程类似于“寄信” 具有以下鲜明特点(1)无连接只要知道对端的 IP 和端口号就可以直接发送数据不需要像 TCP 那样先建立连接 。(2)不可靠无确认机制发送端不知道数据是否到达。无重传机制如果网络故障导致丢包UDP 协议层不会重传。无错误反馈如果发送失败UDP 不会给应用层返回任何错误信息 。(3)面向数据报应用层交给 UDP 多长的报文UDP 就原样发送既不会拆分也不会合并 。例如你用 UDP 发送 100 个字节的数据接收端必须调用一次recvfrom接收 100 个字节。不能循环调用 10 次每次收 10 个字节 。UDP如何将报头与有效载荷进行分离UDP的报头当中只包含四个字段每个字段的长度都是16位总共8字节。因此UDP采用的实际上是一种定长报头UDP在读取报文时读取完前8个字节后剩下的就都是有效载荷了。UDP如何决定将有效载荷交付给上层的哪一个协议UDP上层也有很多应用层协议因此UDP必须将有效载荷交给对应的上层协议。应用层的每一个网络进程都会绑定一个端口号服务端进程必须显示绑定一个端口号客户端进程则是由系统动态绑定的一个端口号。UDP就是通过报头当中的目的端口号来找到对应的应用层进程的。说明一下内核中用哈希的方式维护了端口号与进程ID之间的映射关系因此传输层可以通过端口号得到对应的进程ID进而找到对应的应用层进程。UDP 的缓冲区与并发虽然 UDP 是不可靠的但它在系统层面依然有缓冲区的概念发送缓冲区UDP没有真正意义上的发送缓冲区。调用sendto会直接交给内核由内核将数据传给网络层协议进行后续的传输动作。接收缓冲区UDP具有接收缓冲区。但是这个接收缓冲区不能保证收到的UDP报的顺序和发送UDP报的顺序一致如果缓冲区满了再到达的UDP数据就会被丢弃。全双工UDP 的 Socket 既能读也能写支持全双工通信 。为什么UDP要有接收缓冲区如果UDP没有接收缓冲区那么就要求上层及时将UDP获取到的报文读取上去如果一个报文在UDP没有被读取那么此时UDP从底层获取上来的报文数据就会被迫丢弃。一个报文从一台主机传输到另一台主机在传输过程中会消耗主机资源和网络资源。如果UDP收到一个报文后仅仅因为上次收到的报文没有被上层读取而被迫丢弃一个可能并没有错误的报文这就是在浪费主机资源和网络资源。UDP的接收缓冲区的作用就是将接收到的报文暂时的保存起来供上层读取。UDP使用注意事项需要注意的是UDP协议报头当中的UDP最大长度是16位的因此一个UDP报文的最大长度是64K包含UDP报头的大小。然而64K在当今的互联网环境下是一个非常小的数字。如果需要传输的数据超过64K就需要在应用层进行手动分包多次发送并在接收端进行手动拼装。基于UDP的应用层协议NFS网络文件系统。TFTP简单文件传输协议。DHCP动态主机配置协议。BOOTP启动协议用于无盘设备启动。DNS域名解析协议。当然也包括你自己写UDP程序时自定义的应用层协议。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询