笔记-TCP/IP协议

TCP/IP协议-笔记

在讲TCP/IP之前我们先来了解下网络七层模型,以及TCP/IP和osi七层的关系。

OSI网络七层

1.应用层:与其它计算机进行通讯的一个应用,它是对应应用程序的通信服务的。例如,一个没有通信功能的字处理程序就不能执行通信的代码,从事字处理工作的程序员也不关心OSI的第7层。但是,如果添加了一个传输文件的选项,那么字处理器的程序就需要实现OSI的第7层。示例:TELNET,HTTP,FTP,NFS,SMTP等。
2.表示层:这一层的主要功能是定义数据格式及加密。例如,FTP允许你选择以二进制或ASCII格式传输。如果选择二进制,那么发送方和接收方不改变文件的内容。如果选择ASCII格式,发送方将把文本从发送方的字符集转换成标准的ASCII后发送数据。在接收方将标准的ASCII转换成接收方计算机的字符集。示例:加密,ASCII等。
3.会话层:它定义了如何开始、控制和结束一个会话,包括对多个双向消息的控制和管理,以便在只完成连续消息的一部分时可以通知应用,从而使表示层看到的数据是连续的,在某些情况下,如果表示层收到了所有的数据,则用数据代表表示层。示例:RPC,SQL等。
4.传输层:这层的功能包括是否选择差错恢复协议还是无差错恢复协议,及在同一主机上对不同应用的数据流的输入进行复用,还包括对收到的顺序不对的数据包的重新排序功能。示例:TCP,UDP,SPX。
5.网络层:这层对端到端的包传输进行定义,它定义了能够标识所有结点的逻辑地址,网络层的主要工作是定义网络地址,区分网段,子网内MAC寻址,对于不同子网的数据包进行路由。为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。示例:IP,IPX等。
6.数据链路层:它定义了在单个链路上如何传输数据。这些协议与被讨论的各种介质有关。示例:ATM,FDDI等。
7.物理层:OSI的物理层规范是有关传输介质的特性,这些规范通常也参考了其他组织制定的标准。连接头、帧、帧的使用、电流、编码及光调制等都属于各种物理层规范中的内容。物理层常用多个规范完成对所有细节的定义。示例:Rj45,802.3等。
osi网络七层

TCP/IP五层

TCP/IP五层模型的协议分为:应用层、传输层、网络层、数据链路层和物理层
TCP/IP和osi七层的关系:
TCP/IP和osi七层

TCP/IP的工作原理

这里我们要理解数据是怎样从一个主机到达另一个主机的;当通过http发起一个请求时,应用层、传输层、网络层和链路层的相关协议依次对该请求进行包装并携带对应的首部,最终在链路层生成以太网数据包,以太网数据包通过物理介质传输给对方主机,对方接收到数据包以后,然后再一层一层采用对应的协议进行拆包,最后把应用层数据交给应用程序处理。这种结构非常有栈的味道,所以某些文章也把tcp/ip协议族称为tcp/ip协议栈。
在这里插入图片描述
一个数据包被称为一帧(IEEE 802.3协议)
一个完整的以太网数据包分为:头部、数据域、尾部
数据报文

ARP协议

apr协议即:地址解析协议,是根据IP地址获取MAC地址的一个网络层协议。
工作原理:ARP首先发起一个请求报文,报文首部包含目标主机的IP地址,然后这个报文回来链路层进行再次封装,变成以太网数据包,最终由以太网广播给子网内(局限在此,后文会讲)的所有主机,每一台主机都会接收到这个数据包,并取出标头里的IP地址,然后和自己的IP地址进行比较,如果相同就返回自己的MAC地址,如果不同就丢弃该数据包。ARP接收返回消息,以此确定目标机的MAC地址;与此同时,ARP还会将返回的MAC地址与对应的IP地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。cmd输入 arp -a 就可以查询本机缓存的ARP数据。

arp命令

路由协议

通过上文我们发现,ARP的MAC寻址还是局限在同一个子网中,因此网络层引入了路由协议。首先通过IP协议来判定两个主机是否在同一局域网,若在,就按ARP协议查询对应的MAC地址,然后以广播的形式向改子网的主机发送数据。若不在,则以太网会讲改数据报文妆发给本子网的网关进行路由。网关是互联网上子网与子网之间的桥梁,最终将该数据包转发到目标IP所在的子网中,然后在通过ARP协议获取目标MAC地址,最终仍是通过广播形式将数据包发给接收方

参考:https://blog.csdn.net/weixin_41143657/article/details/105797074

原创文章 1 获赞 2 访问量 74

猜你喜欢

转载自blog.csdn.net/weixin_44757097/article/details/105813154