Socket编程实践(1)--TCPIP简述

Socket编程实践(1)--TCPIP简述
ISO的OSI
OSI(open system interconnection)开放系统互联模型是由ISO国际标准化组织定义的⽹络分层模型,共七层, 从下往上为:
OSI七层参考模型
物理层(Physical Layer)物理层定义了所有电⼦及物理设备的规范,为上层的传输提供了⼀个物理介质,
本层中数据传输的单位为⽐特(bit/⼆进制位)。属于本层定义的规范有EIA/TIA RS-232、RJ-45等,实际使⽤中的设备如⽹卡属于本层。
数据链路层(Data Link Layer)对物理层收到的⽐特流进⾏数据成帧。提供可靠的数据传输服务,实现⽆差错数据传输。在数据链路层中数据的单位为帧(frame)。属于本层定义的规范有HDLC、PPP、STP等,实际使⽤中的设备如switch交换机属于本层。
⽹络层
(Network Layer)⽹络层负责将各个⼦⽹之间的数据进⾏路由选择,分组与重组。本层中数据传输的单位为数据包(packet)。属于本层定义的规范有IP、RIP、OSPF、ICMP、IGMP等。实际使⽤中的设备如路由器属于本层。
传输层(Transport Layer)提供可靠的数据传输服务(注意OSI的传输层与TCP/IP的传输层的功能不尽相同),它检测路由器丢弃的包,然后产⽣⼀个重传请求,能够将乱序收到的数据包重新排序。
会话层
(Session Layer)
管理主机之间会话过程,包括会话建⽴、终⽌和会话过程中的管理
表⽰层(Presentation Layer)表⽰层对⽹络传输的数据进⾏变换,使得多个主机之间传送的信息能够互相理解,包括数据的压缩、加密、格式转换等。
vcm应⽤层(Application Layer)应⽤层与应⽤程序界⾯沟通,以达⾄展⽰给⽤户的⽬的。在此常见的协定有: HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3等
全国女排大奖赛
TCP/IP模型TCP/IP主要协议
数据封装(Encapsulation)图解
数据分⽤(Demultiplexing:解包)图解
链路层
以太⽹帧格式
冬芹
以太⽹帧说明:
链路层的数据包,称为以太⽹帧; 链路层不识别IP地址[因为IP地址是逻辑地址],链路层识别物理⽹卡MAC地址[硬件地址]; 需要根据IP地址到对⽅的MAC地址(ARP地址解析协议)[MAC —> IP地址⽅向地址解析];
ARP地址解析协议
IP数据报
版本IP协议版本号, IPv4此字段值为4, IPv6此字段值为6
⾸部
长度
取值范围5(0101)~15(1111), 单位为4字节, 因此⾸部最长为60字节
服务类型长度为8位。此字段包含3位的优先权(现已忽略),4位的服务类型⼦字段(只能有⼀位置1)和1位的保留位(必须置0)。4位的服务类型分别为最⼩延迟(D)、最⼤吞吐量(T)、最⾼可靠性(R)、最⼩费⽤(F), 详细解释见下图
总长
该字段长度为16位, 以字节为单位, 该字段长度包含IP的头部和数据部分, IP数据报最⼤长度为65535字节
标识16位长度, 唯⼀标识⼀个数据报,如果发送⼀个数据包, 则该值加1, 如果数据报分段,则每个分段的标识都⼀样, 各个分⽚共享⼀个标识号
标志3位标志中第⼀位不使⽤, 第⼆位为DF(Don`t Fragment不分段)位, 如果该位为1, 并且传输的数据报超过最⼤传输单元(MTU), 则该数据报会被丢弃, 并发送⼀个ICMP差错报⽂; 第三位MF(More Fragment更多分段)位,表⽰是否有更多的分⽚, 如果该位为1, 则说明后续还有分⽚, 最后⼀⽚MF为0
⽚偏移以8个字节为单位,指出该分段的第⼀个数据字在原始数据报中的偏移位置,IP分⽚后每⼀个分组都具有⾃⼰的⾸部, ⽽且标志位相同, 但是⽚偏移值不同, 通过⽚偏移值接收端可以重新组装IP包
⽣存时间(TTL)表⽰数据报最多可经过的路由器点的数量. 取值0~255,每经过⼀个路由器, TTL值减1,为0时被丢弃, 并发送ICMP报⽂通知源主机, TTL可以避免数据报在路由器之间不断循环(Tranceroute程序的实现原理)一机双号
协议类型指明IP层上承载的是哪个⾼级协议, 在封装与分⽤的过程中, 协议栈知道该交给哪个层的协议处理, 如1为ICMP, 2为IGMP, 6为TCP, 17为UDP等.
儒林外史人物形象分析头部校验和保证数据报头部的数据完整性,但校验不包括数据部分。这样做的⽬的有⼆:⼀是所有将数据封装在IP数据包中的⾼层协议均含有覆盖整个数据的校验和,因此IP数据报没有必要再对其所承载的数据部分进⾏校验。⼆是每经过⼀个路由器,IP数据报的头部要发⽣改变(如TTL),⽽数据部分不变,这样只对发⽣改变的头部进⾏校验,显然不会浪费太多的时间。为了减少计算时间,⼀般不⽤CRC校验码,⽽是采⽤更简单的⽹际校验和(Internet Checksum)。
选项与填充(选项为4字节整数倍,否则⽤0填充)
安全和处理限制
路径记录:记录所经历路由器的IP地址
时间戳:记录所经历路由器的IP地址和时间
宽松源站路由:指定数据报⽂必须经历的IP地址,可以经过没有指定的IP地址。严格的源站路由:指定数据报⽂必须经历的IP地址,不能经过没有指定的IP
地址。
路由过程
ICMP协议
ICMP协议⽤于传递差错信息、时间、回显、⽹络信息等控制数据
当我们ping ⼀台主机想看它是否运⾏时,就产⽣了⼀条ICMP 信息。远程主机将⽤它⾃⼰的ICMP 信息对ping 请求作出回应。
ICMP协议说明:
ICMP数据包本⾝是IP的⼀部分,ICMP包含在IP数据包的净荷数据中,IP头中协议类型为1; 主要⽤于⽹关或者⽬标机器利⽤ICMP与源通讯,当出现问题时,提供反馈信息; ICMP数据的第⼀个字节代表ICMP报⽂的类型,它决定了后续数据的格式
台风莫拉克
UDP⽤户数据报

本文发布于:2024-09-23 10:24:27,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/14511.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   协议   IP地址   路由器
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议