Linuxc下的SOCKET网络编程课件.ppt

Linuxc下的SOCKET网络编程课件.ppt

ID:57058129

大小:377.00 KB

页数:30页

时间:2020-07-30

Linuxc下的SOCKET网络编程课件.ppt_第1页
Linuxc下的SOCKET网络编程课件.ppt_第2页
Linuxc下的SOCKET网络编程课件.ppt_第3页
Linuxc下的SOCKET网络编程课件.ppt_第4页
Linuxc下的SOCKET网络编程课件.ppt_第5页
资源描述:

《Linuxc下的SOCKET网络编程课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、网络编程IPV4协议分析IPv4包头结构IPv4包头结构版本—IP头中前四位标识了IP的操作版本,比如版本4或版本6Internet头长度—头中下面4位包括头长度,以32位为单位表示服务类型总长度(TotalLength)标识(Identifier)—每个IP报文被赋予一个惟一的16位标识,用于标识数据报的分段分段标志(FragmentationFlag)—下一个域包括3个1位标志,标识报文是否允许被分段和是否使用了这些域IPv4包头结构分段偏移(FragmentOffest)—8位的域指出分段报文相对于整个报文开始处的偏移。这个值以64位为单位递增生存时间(TTL)—IP报文不允许在广

2、域网中永久漫游。它必须限制在一定的TTL内协议—8位域指示IP头之后的协议,如VINES、TCP、UDP等校验和(checksum)—校验和是16位的错误检测域。目的机、网络中的每个网关要重新计算报文头的校验和,就如同源机器所做的一样源IP地址—源计算机的IP地址目的IP地址—目的计算机的IP地址填充—为了保证IP头长度是32位的整数倍,要填充额外的0TCP协议分析TCP包头结构图3-3TCP数据在IP数据报中的封装TCP包头结构图3-4TCP包首部TCP包头结构TCP源端口16位的源端口域包含初始化通信的端口号源端口和源IP地址的作用是标识报文的返回地址TCP目的端口16位的目的端口域

3、定义传输的目的这个端口指明报文接收计算机上的应用程序地址接口TCP包头结构TCP序列号32位的序列号由接收端计算机使用,重组分段的报文成最初形式TCP应答号TCP使用32位的应答(ACK)域标识下一个希望收到的报文的第一个字节TCP包头结构数据偏移这个4位域包括TCP头大小以32位数据结构或称为“双字”为单位保留6位恒置0的域为将来定义新的用途保留标志6位标志域,每1位标志可以打开一个控制功能这六个标志是:紧急标志、有意义的应答标志、推、重置连接标志、同步序列号标志、完成发送数据标志TCP包头结构窗口大小目的机使用16位的域告诉源主机,它想收到的每个TCP数据段大小。用于TCP协议的流量

4、控制校验和TCP头也包括16位的错误检查域—“校验和”域紧急紧急指针域是一个可选的16位指针,指向段内的最后一个字节位置,这个域只在URG标志设置了时才有效。选项至少一字节的可变长域标识哪个选项。TCP包头结构数据域的大小是最大的MSS,MSS可以在源和目的机器之间协商填充其目的是确保空间的可预测性、定时和规范大小这个域中加入额外的零以保证TCP头是32位的整数倍建立一个TCP连接结束一个TCP连接网络编程基础知识字节序列转换每一个机器内部对变量的字节存储顺序不同(有的系统是高位在前,底位在后,而有的系统是底位在前,高位在后),而网络传输的数据大家是一定要统一顺序的。所以对与内部字节表示

5、顺序和网络字节顺序不同的机器,就一定要对数据进行转换。字节序列转换#includeuint16_thtons(uint16_thostshort);功能:将主机字节顺序转换为网络字节顺序。返回值:成功返回转换后的字节序。地址格式转换#include#include#includeintinet_pton(intaf,constchar*src,void*dst);功能:将点分格式的地址字符串转换为网络字节序整型数。返回值:成功返回1,错误返回-1参数:af:转换格式AF_INET(I

6、PV4)或AF_INET6(IPV6)src:点分格式的地址dst:转换后的整型变量的地址地址格式转换#include#include#includeconstchar*inet_ntop(intaf,constvoid*src,char*dst,socklen_tcnt);功能:将网络字节序整型转换为点分格式的IP地址返回值:成功返回转换后地址,失败返回NULL参数:af:转换格式AF_INET(IPV4)或AF_INET6(IPV6)src:整型变量地址des:用来存储转换后数据的地址cnt:存储空间大小

7、网络编程基础socket概述Linux中的网络编程通过socket接口实现。socket既是一种特殊的IO,它也是一种文件描述符。一个完整的socket都有一个相关描述{协议,本地地址,本地端口,远程地址,远程端口};每一个socket有一个本地的唯一socket号,由操作系统分配。网络编程基础套接字有三种类型:流式套接字(SOCK_STREAM)流式的套接字可以提供可靠的、面向连接的通讯流。它使用了TCP协议。TCP保证了数据传输

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。