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

做装饰网站公司陕西省城乡和住房建设厅网站

做装饰网站公司,陕西省城乡和住房建设厅网站,做dota2菠菜网站,爱采购网目录 IP地址和端口号 源IP地址和目的IP地址 端口号 源端口号和目的端口号 TCP/UDP协议 网络字节序 大小端 如何定义网络数据流地址 网络字节序和主机字节序的转换 socket编程接口 sockaddr结构 IP地址和端口号 源IP地址和目的IP地址 在IP数据包头部中#xff0c;会…目录 IP地址和端口号 源IP地址和目的IP地址 端口号 源端口号和目的端口号 TCP/UDP协议 网络字节序 大小端 如何定义网络数据流地址 网络字节序和主机字节序的转换 socket编程接口 sockaddr结构 IP地址和端口号 源IP地址和目的IP地址 在IP数据包头部中会有两个地址一个叫做源IP地址一个叫做目的IP地址。源IP地址是指发送数据包的主机的IP地址而目的IP地址是指接收数据包的主机的IP地址。 在互联网中每个主机都有一个唯一的IP地址用于标识该主机的身份和位置。在数据包传输过程中源IP地址和目的IP地址是用于确定数据包的来源和目的地的重要信息以便正确地将数据包传输到目标主机。 但是光有IP地址是不够的。假设你现在用微信向你的好朋友发送了一条消息有了IP地址能将消息发送到对方的机器上。但是还需要一个特定的标识来区分这个数据要给哪一个程序进行解析。 基于上述的问题引出端口号的概念通过IP地址端口号就能将数据发送给指定主机的某一个程序了。主机的唯一性由公网IP标识而主机上的服务进程由端口号标识。  端口号 端口号port是传输层协议的内容。 ●端口号是一个2字节16位的整数。 ●端口号用来标识一个进程告诉操作系统当前的数据要交给哪一个进程来处理。 ●IP地址端口号能够标识网络上的某一台主机的某一个进程。 ●在同一台主机上同一个端口号不能标识多个进程。不同主机上的标识各自进程的端口号可以相同。 ●一个进程可以绑定多个端口号但一个端口号不能被多个进程绑定。 小疑问如果端口号的功能是用来标识一个进程为什么不用PID呢两者之间有什么关系。 答1.如果使用PID,进程每次重新启动PID都可能会更改PID变了网络部分也要进行修改。采用端口号的方式操作系统是操作系统网络是网络解耦。2.服务器的唯一性不能做任何改变IPPort。3.不是所有的进程都需要提供网络服务或者请求但是所有进程都需要PID。 源端口号和目的端口号 源端口号和目的端口号在计算机网络中用于标识数据包发送和接收的进程或应用程序。源端口号是发送方计算机上的端口号目的端口号是接收方计算机上的端口号。在TCP/IP协议中源端口号和目的端口号都是16位的整数取值范围是0~65535。 TCP/UDP协议 TCPTransmission Control Protocol和UDPUser Datagram Protocol都是互联网协议中的传输层协议用于在网络上传输数据。 TCP是一种可靠的、面向连接的协议它通过三次握手建立连接保证数据的可靠传输。TCP在传输数据时会对数据进行分段并为每个分段进行编号接收方会对每个分段进行确认如果发送方没有收到确认就会重新发送数据。TCP还会对数据进行流量控制和拥塞控制以避免网络拥塞和数据丢失。 ●传输层协议●有连接●可靠传输●面向字节流 UDP是一种不可靠的、无连接的协议它不会对数据进行分段和编号也不会进行确认和重传。UDP适用于需要快速传输数据的应用如实时音视频传输、在线游戏等。由于UDP没有TCP那么多的控制机制因此它的传输效率更高但也更容易出现数据丢失和网络拥塞的问题。 ●传输层协议●无连接●不可靠传输●面向数据报 总的来说TCP适用于需要可靠传输的应用而UDP适用于需要快速传输的应用。需要注意的是上述的可靠和不可靠是中性词只是特点不同适用场景不同。 网络字节序 内存中的多字节数据相对于内存地址由大端和小端之分磁盘文件中的多字节数据相对于文件中的偏移地址也有大端小端之分网络数据流同样有大端小端。 ●发送主机通常将发送缓冲区中的数据按内存地址从低到高的顺序发出。 ●接收主机把从网络上接到的字节依次保存在接收缓冲区中,也是按内存地址从低到高的顺序保存。 ●网络数据流的地址规定:先发出的数据是低地址,后发出的数据是高地址。 ●TCP/IP协议规定,网络数据流应采用大端字节序,即低地址高字节。 ●不管这台主机是大端机还是小端机, 都会按照这个TCP/IP规定的网络字节序来发送/接收数据。 ●如果当前发送主机是小端, 就需要先将数据转成大端; 否则就忽略, 直接发送即可。 大小端 小端模式下数据的低位字节存储在内存的低地址处高位字节存储在内存的高地址处。 大端模式下数据的高位字节存储在内存的低地址处低位字节存储在内存的高地址处。 如何定义网络数据流地址 TCP/IP协议规定,网络数据流应采用大端字节序,即低地址高字节。 网络字节序和主机字节序的转换 在上述的函数名中h表示host,n表示network。l表示32位长整数。s表示16位短整数。如果主机是小端字节序,这些函数将参数做相应的大小端转换然后返回。如果主机是大端字节序,这些函数不做转换,将参数原封不动地返回。 socket编程接口 // 创建 socket 文件描述符 (TCP/UDP, 客户端 服务器) int socket(int domain, int type, int protocol);// 绑定端口号 (TCP/UDP, 服务器) int bind(int socket, const struct sockaddr *address, socklen_t address_len);// 开始监听socket (TCP, 服务器) int listen(int socket, int backlog);// 接收请求 (TCP, 服务器) int accept(int socket, struct sockaddr* address, socklen_t* address_len);// 建立连接 (TCP, 客户端) int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen); sockaddr结构 在我们进行网络通信的过程中套接字的种类不止一种比如网络套接字编程原始套接字和unix域间套接字。 网络套接字Socket它提供了一组用于网络通信的函数和数据结构使得应用程序可以通过网络与其他应用程序进行通信。通过网络套接字应用程序可以实现不同计算机之间的数据传输和通信。 原始套接字Raw Socket它允许程序直接访问网络协议栈从而可以发送和接收任意类型的网络数据包包括未经处理的数据包。相比于传统的套接字接口原始套接字提供了更高的灵活性和更细粒度的控制但也需要更多的编程工作和更高的权限。 域间套接字Domain Socket它只能在同一台计算机上的进程之间进行通信。与传统的网络套接字不同域间套接字不需要经过网络协议栈的处理因此具有更高的性能和更低的延迟。域间套接字通常用于本地进程之间的通信比如在同一台计算机上的不同进程之间共享数据或者进行进程间通信等。 如果给不同的套接字各自设计一套接口就太麻烦所以使用sockaddr结构的方式通过给一套接口传递不同的参数就解决了所有网络或者其他问题下的通信问题。 下述示意图以sockaddr_in(inet,网络通信)与sockaddr_un(unix域间套接字)两个套接字类型为例 在我们想要进行网络通信的时候填充的是sockaddr_in(inet,网络通信)与sockaddr_un(unix域间套接字)的字段。在参数传递的时候强转成sockaddr传递。 不管传递的参数是什么在函数内部都当做sockaddr看待根据前两个字节在做判断强转回去。这样一来通过一套接口就可供不同的套接字调用。
http://www.w-s-a.com/news/445370/

相关文章:

  • 软件开发与网站开发学做美食网站哪个好
  • 网站搜索 收录优化百度推广页面投放
  • 响应式网站的优点浙江省网站域名备案
  • 网站安全 扫描深圳被点名批评
  • 在哪个网站可以一对一做汉教网站优化策略
  • 龙岩做网站的顺企网宁波网站建设
  • 昆山网站建设河北连锁餐厅vi设计公司
  • 新蔡县住房和城乡建设局网站南昌租房网地宝网
  • 南宁做网站费用iis编辑网站绑定
  • 家用宽带做网站服务器建网站费用明细
  • 电商 网站 降低 跳出率 措施 效果书画院网站模板
  • 兰州移动官网网站建设上海工商网上公示系统
  • 在招聘网站里做电话销售免费空间可以上传网站吗
  • 梅州建站怎么做中国建设银行官网下载
  • 网站静态化设计广州网站备案方案
  • 西安网络技术有限公司网站扬中网站建设方案
  • 青海省教育厅门户网站wordpress core
  • idc科技公司网站模板蜜雪冰城网络营销案例分析
  • 微信与网站对接手机软件怎么做
  • 户县网站建设珠海专业制作网站
  • 麦当劳的网站优化建议猎头公司工作怎么样
  • 合肥地区网站制作网页浏览器打不开
  • 做网站的不给ftp网站如何做触屏滑动
  • wordpress statraq重庆百度优化
  • 企业网站官网英文WordPress站点切换为中文
  • 服装公司网站定位一点号自媒体平台
  • 密云微网站建设汽车之家手机官网首页
  • 多语言外贸网站制作苏州建设网站微信公众号
  • 用wordpress建站学什么百度给企业做网站吗
  • 福建城乡建设网站做数码测评的网站