计算机网络体系架构

讲解了架构,以及TCP,UDP之间区别,还讲解为什么DNS同时使用了TCP,UDP。
在这里插入图片描述一般理解为4层。

每层对应的协议

应用层Application协议有:
HTTP超文本传输协议,FTP文件传输协议,SMTP简单邮件传送协议,POP3(post office protocal version-3)邮局协议(用来接收邮件),TELNET远程登录协议 ,SSH(Secure Shell)安全外壳协议 (这些都使用TCP协议)

SNMP简单网络管理协议,DHCP(dynamic host cofiguration P)动态主机配置协议,RIP((Routing Information Protocol)路由信息协议。(这些使用UDP协议)

DNS域名服务,(既用到了TCP协议也用到了UDP协议)

DNS(domain name sercice)域名服务既用到了TCP协议也用到了UDP协议,同时占用了 UDP 和 TCP 的 53 端口。为什么会这样呢?
尽管UDP更加的快速,然而有时DNS响应报文超过UDP报文最大长度,则超出的长度会被截断(truncation)。

以太网帧在联网情况,路由器默认最大传输单元MTU(maximum transmission unit)是576字节,不同于以太网帧在局域网中的MTU是1500byte。所以经过减去头尾部后以及(可能出于算法的考虑),UDP数据实际能使用的是512字节。所以实际中,客户端会先使用UDP协议发送DNS查询报文,若客户段读取报文首部发现TC标志位置为1则表明该DNS报文段被截断,便会重新发起一个TCP请求,从而得到完整的响应报文。

但是要知道的是,一般情况下,客户端与DNS服务器间使用的都是UDP协议。然而在主域名服务器(master)和辅助域名服务器(slave)间的区域传输zone transfer,强制使用的是TCP协议。辅域名服务器会定时向主域名服务器进行查询以便了解数据是否有变动。如有变动,则会执行一次区域传输。区域传输使用 TCP 而不是 UDP,因为数据同步传送的数据量比一个 DNS 请求和响应报文的数据量要多得多。

传输层Transport :
TCP协议(Transmission Control Protocol,传输控制协议):
UDP协议(User Datagram Protocol,用户数据报协议):UDP数据报具有最大长度,若多出则会被截断(truncation)。接收端无法像TCP协议一样将多个段重组在一起。

TCP与UDP区别:
UDP是无连接的,不保证可靠交付,面向报文的,没有拥塞控制,支持多对多,首部开销小(8个字节)。
TCP面向连接,提供可靠交付,面向字节流的,全双工通信,只能点对点,首部开销较udp大(20个字节)。 TCP保证可靠运输是因为具有 差错检验 以及 自动重传ARQ(Automatic Repeat-reQuest)的特点

网络层Network:
IP(根据数据包的目的IP地址来决定如何转发投递它)。
因特网控制报文协议 ICMP(Internet Control Message Protocol),主要用于检测网络连接 (ping命令)。

IP协议需要依靠到OSPF(Open Shortest Path First开放式最短路径优先。这是一个内部网关协议(Interior Gateway Protocol,简称IGP)。对于其属于哪一层并无严格说法。其作用是生成最短路由路径树,每个OSPF路由器使用这些最短路径构造路由表。

数据链路层 Data Link:该层主要传输帧
有ARP协议(Address Resolve Protocol,地址解析协议,RARP协议(ReverseAddress Resolve Protocol,逆地址解析协议。实现了IP地址和机器物理地址(通常是MAC地址,以太网、令牌环和802.11无线网络都使用MAC地址)之间的相互转换。

物理层physical layer传输比特。
在TCP/IP四层架构体系中,该层与数据链路层合在一起称为网络接口层。

关于TCP的三次握手连接以及四次挥手断开

TCP三次握手:

在这里插入图片描述

第一次握手:建立连接时,客户端发送syn包(syn=x)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
第三次握手原因:防止已经失效的连接请求报文又突然传到了服务器,因而产生错误。

TCP四次挥手:

在这里插入图片描述

第一次挥手:A向B发出释放连接请求的报文,其中FIN(终止位) = 1,seq(序列号)=u;在A发送完之后,A的TCP客户端进入FIN-WAIT-1(终止等待1)状态。此时A还是可以进行收数据的,但不再发送了
第二次挥手:B->A:B在收到A的连接释放请求后,随即向A发送确认报文。其中ACK=1(表示确认请求),seq=v,ack(确认号) = u +1;在B发送完毕后,B的服务器端进入CLOSE_WAIT(关闭等待)状态。此时A收到这个确认后就进入FIN-WAIT-2(终止等待2)状态,等待B发出连接释放的请求。此时B还是可以发数据的。
第三次挥手:B->A:当B已经没有要发送的数据时,B就会给A发送一个释放连接报文,其中FIN=1,ACK=1,seq=w,ack=u+1,在B发送完之后,B进入LAST-ACK(最后确认)状态。
第四次挥手:当A收到B的释放连接请求时,必须对此发出确认,其中ACK=1,seq=u+1,ack=w+1;A在发送完毕后,进入到TIME-WAIT (时间等待)状态。B在收到A的确认之后,进入到CLOSED(关闭)状态。在经过时间等待计时器设置的时间之后,A才会进入CLOSED状态。

四次挥手原因:由于客户端最后一个ACK可能会丢失,这样B就无法正常进入CLOSED状态。于是B会重传请求释放的报文,而此时A如果已经关闭了,那就收不到B的重传请求,就会导致B不能正常释放。而如果A还在等待时间内,就会收到B的重传,然后进行应答,这样B就可以进入CLOSED状态了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值