tcp/ip(transmission control protocol/internet protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。
01
tcp/ip协议簇
tcp/ip协议不仅仅指的是tcp和ip两个协议,而是指一个由ftp、smtp、tcp、udp、ip等协议构成的协议簇, 只是因为在tcp/ip协议中tcp协议和ip协议最具代表性,所以被称之为tcp/ip协议。
计算机网络体系结构分层
02
数据单位
包、帧、数据包、段、消息。
以上五个术语都用来表述数据的单位,大致区分如下:
① 包可以说是全能性术语;
② 帧用于表示数据链路层中包的单位;
③ 数据包是 ip 和 udp 等网络层以上的分层中包的单位;
④ 段则表示 tcp 数据流中的信息;
⑤ 消息是指应用协议中数据的单位。
每个分层中,都会对所发送的数据附加一个首部,在这个首部中包含了该层必要的信息,如发送的目标地址以及协议相关信息。通常,为协议提供的信息为包首部,所要发送的内容为数据。在下一层的角度看,从上一层收到的包全部都被认为是本层的数据。
此外,还需了解ip、mac、端口。
ip 地址:用来识别 tcp/ip 网络中互连的主机和路由器。
mac:识别同一链路中不同的计算机。
端口:端口号用来识别同一台计算机中进行通信的不同应用程序。因此,它也被称为程序地址。
03
数据传输过程
协议栈中数据传输的过程:
① 应用程序处理
首先应用程序会进行编码处理,这些编码相当于 osi 的表示层功能;编码转化后,邮件不一定马上被发送出去,这种何时建立通信连接何时发送数据的管理功能,相当于 osi 的会话层功能。
② tcp 模块的处理
tcp 根据应用的指示,负责建立连接、发送数据以及断开连接。tcp 提供将应用层发来的数据顺利发送至对端的可靠传输。为了实现这一功能,需要在应用层数据的前端附加一个 tcp 首部。
③ ip 模块的处理
ip 将 tcp 传过来的 tcp 首部和 tcp 数据合起来当做自己的数据,并在 tcp 首部的前端加上自己的 ip 首部。ip 包生成后,参考路由控制表决定接受此 ip 包的路由或主机。
④ 网络接口(以太网驱动)的处理
从 ip 传过来的 ip 包对于以太网来说就是数据。给这些数据附加上以太网首部并进行发送处理,生成的以太网数据包将通过物理层传输给接收端。
⑤ 网络接口(以太网驱动)的处理
主机收到以太网包后,首先从以太网包首部找到 mac 地址判断是否为发送给自己的包,若不是则丢弃数据。如果是发送给自己的包,则从以太网包首部中的类型确定数据类型,再传给相应的模块,如 ip、arp 等。这里的例子则是 ip 。
⑥ ip 模块的处理
ip 模块接收到数据后也做类似的处理。从包首部中判断此 ip 地址是否与自己的 ip 地址匹配,如果匹配则根据首部的协议类型将数据发送给对应的模块,如 tcp、udp。这里的例子则是 tcp。另外,对于有路由器的情况,接收端地址往往不是自己的地址,此时,需要借助路由控制表,在调查应该送往的主机或路由器之后再进行转发数据。
⑦ tcp 模块的处理
在 tcp 模块中,首先会计算一下校验和,判断数据是否被破坏。然后检查是否在按照序号接收数据。最后检查端口号,确定具体的应用程序。数据被完整地接收以后,会传给由端口号识别的应用程序。
⑧ 应用程序的处理
接收端应用程序会直接接收发送端发送的数据。通过解析数据,展示相应的内容。
04
tcp与udp协议
tcp/ip 中有两个具有代表性的传输层协议:tcp 和 udp。
tcp 是面向连接的、可靠的流协议。流就是指不间断的数据结构,当应用程序采用 tcp 发送消息时,虽然可以保证发送的顺序,但还是犹如没有任何间隔的数据流发送给接收端。tcp 为提供可靠性传输,实行“顺序控制”或“重发控制”机制。此外还具备“流控制(流量控制)”、“拥塞控制”、提高网络利用率等众多功能。
udp 是不具有可靠性的数据包协议。细微的处理它会交给上层的应用去完成。在 udp 的情况下,虽然可以确保发送消息的大小,却不能保证消息一定会到达。因此,应用有时会根据自己的需要进行重发处理。
tcp 和 udp 的优缺点无法简单地、绝对地去做比较:tcp 用于在传输层有必要实现可靠传输的情况;而在一方面,udp 主要用于那些对高速传输和实时性有较高要求的通信或广播通信。tcp 和 udp 应该根据应用的目的按需使用。
通过 ip 地址、端口号、协议号进行通信识别:
① 和 ② 的通信是在两台计算机上进行的。它们的目标端口号相同,都是80。这里可以根据源端口号加以区分。
③ 和 ① 的目标端口号和源端口号完全相同,但它们各自的源 ip 地址不同。
此外,当 ip 地址和端口号全都一样时,我们还可以通过协议号来区分(tcp 和 udp)。
TDA8310A各引脚功能及电压
卢伟冰吐槽荣耀9X系列的10W充电不给力 看了荣耀的回应会作何感想?
电容滤波的原理
好太太智能锁V86S:安全便捷一步到位
Intel Comet Lake-H系列发布 CPU频率及睿频加速获提升
TCP/IP协议不止是两个协议
无电解电容LED驱动方案中输出功率的测量
阵列接收器适合需要执行自动闭环或刺激响应类测试的测量系统?
努比亚Z18无边水滴屏有哪些亮点
片状电阻失效机理分析
联网汽车可以成为安全汽车吗
笔记本电脑制造材料有哪些?
中兴交换机抢占全球运营商市场份额第二
中科光芯正式宣布完成新一轮数亿元人民币融资
如何对电源做负载瞬态响应测试
基准电压和参考电压的基本原理及特性分析
高速ADC的动态性能参数和基于DSP技术的测试方法研究
【深智云-深智视野】腕小宝,用大数据关注健康
好强大!高通骁龙处理器正式支持Windows 10!
600V三相栅极驱动器加速三相电机的应用