计算机网络OSI与TCP/IP各层的结构与功能,都有哪些协议。
TCP/IP相似之处:基于独立的协议族,层的功能划分相似差异:ISO/OSI:从概念模型到协议实现;TCP/IP:从协议实现到概念描述层次数量差别;●UDP,UDP时●TCP●TCP●TCP用于传输层有必要实现可靠性传输的情况。
UDP主要用于对高速传输和实时性有较高要求的通信或广播通信。
区别:1)TCP面向连接;UDP是无连接的,发送数据之前不需要建立连接。
2)TCP提供可靠的服务。
TCP传送的数据无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,不保证可靠交付。
3)TCP面向字节流,实际上TCP把数据看成一串无结构的字节流;UDP是面向报文的,UDP没有拥塞控制,网络出现拥塞不会使源主机的发送速率降低。
4)5)TCP6)TCP✧IP✓✓✓✓总长度:占16位,值首部和数据之和的长度,单位为字节,数据报最大长度65535字节,总长度不超过最大传送单元MTU(1500)✓标识:占16位,它是一个计数器,用来产生数据报标识。
✓标志:占3位,只有前两位有意义。
标志字段最低位MF(morefragment)MF=1表示“还有分片”。
MF=0表示最后一个分片。
标志字段中间位DF(Don’tfragment)当DF=0允许分片。
✓片偏移:12位,较长的分组在分片后某片在原分组中的相对位置。
以8字节为偏移单位。
✓生成时间:TTL,8位,数据报在网络中可通过的路由器的最大值。
✓协议:8位,指出数据报写的数据所用的协议,以便目的主机的IP层将数据上交那个处理过程。
(TCP、UDP、✓✓✓✓✓✓✓✓✓URG:为1时,表明紧急指针字段有效。
通知系统此报文段有紧急数据,应尽快传送(优先级高的数据)✓ACK:为1是确认号字段有效,为0时无效.✓PSH:接收到的PSH=1的报文,尽快交付应用进程,不等待整个缓冲区填满。
✓RST:为1表明TCP连接中出现差错,必须释放连接,然后重新建立。
✓SYN:为1表示这是一个连接请求或连接接受报文。
✓FIN:用来释放一个连接。
为1表明该报文段的发送端的数据已经发送完毕,要求释放连接。
✓窗口:2字节,用来让对方设置发送窗口的依据。
✓校验和:2字节,校验范围包括首部和数据。
在计算校验和时,要在TCP报文段前加12个字节的伪首部。
✓✓✓填充TimeWait1)2)什么是拥塞?在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能变坏,这种情况叫拥塞。
拥塞控制就是防止过多的数据注入网络,使网络中的路由器或链路不至过载。
拥塞控制是一个全局性的过程,和流量控制不同,流量控制是点对点通信量的控制。
拥塞窗口cwnd:发送方维持一个拥塞窗口的状态变量。
其大小取决于网络的拥塞程度,并且动态变化。
发送方让自己的发送窗口等于拥塞窗口。
如果考虑接收方的接收能力,发送窗口可能小于拥塞窗口。
控制拥塞窗口原则:只要网络没有出现拥塞,窗口就增大一些,只要出现拥塞,窗口就减小一些。
✧慢开始与拥塞避免1,不是加确认)✧快重传:发送方只要一连接收到三个重复确认就立即重传对方尚未收到的报文段。
快恢复:当发送端收到连续三个重复的确认是,把慢开始门限ssthresh减半,但不执行慢开始算法。
由于发送方现在认为网络很可能没有发生拥塞(因为可以收到三个连续重复确认),因此不执行慢开始算法,而是将cwnd 设置为慢开始门限ssthresh减半后的数值,开始执行拥塞避免算法。
发送窗口的上限值:发送方的发送窗口的上限值应当取为接收方rwnd和拥塞窗口cwnd中较小的一个。
当rwnd<cwnd时,是接收方的接收能力限制发送窗口的最大值。
当cwnd<rwnd时,是网络的拥塞限制发送方窗口的最大值。
✧随机早起检测REDREDLav✧TCP塞。
✧1须等待这个数据报的ACK,才能发送下一个。
ARQ(AutomaticRepeatreQuest)自动重传请求。
重传的请求是自动进行的。
接收方不需要请求发送方重传某个出错的分组。
✧回退N(Go-back-N)表示需要再退回来重传已发送的N个分组。
累计确认:不必对收到的分组逐个发送确认,而是对按序到达的最后一个分组发送确认。
优点是容易实现,即使确认丢失也不必重传。
缺点是:不能向发送方反映接收方已经正确收到的所有分组。
✧选择确认SACK:接收方收到了不连续的字节块。
如果这些字节块的序号在接收窗口内,那么接收方收下这些数据,但要把这些信息准确的告诉发送方,是发送方不再发送重复的数据。
✧URL:版本:版本:状态码:2XX表示成功,如接受或知道了。
3XX表示重定向,表示要完成的请求还必须采取进一步行动。
4XX表示客户的差错,如请求中有错误的语法或不能完成。
5XX表示服务器的差错,如服务器失效无法完成请求。
8.Http的状态码含义。
状态码:1XX表示通知信息,如请求收到了或正在进行处理。
2XX表示成功,如接受或知道了。
3XX表示重定向,表示要完成的请求还必须采取进一步行动。
HTTP1.0HTTP1.1延迟。
这样显着减少了所需时间。
HTTP1.0不支持Host请求头字段,在HTTP1.1中增加了Host请求头字段,WEB浏览器可以使用主机头名来明确表示要访问服务器上的哪个WEB站点,实现了在一台WEB服务器上可以在同一个IP地址和端口号上使用不同的主机名来创建多个虚拟WEB站点。
HTTP1.1还提供了与身份认证、状态管理和Cache缓存机制相关的请求头和响应头。
11.Http怎么处理长连接。
判断长连接是否需要结束?Keep-Alive:timeout=20,表示这个TCP通道可以保持20秒。
另外还可能有max=XXX,表示这个长连接最多接收XXX13.TCP、✧置。
✧由于。
ICMP数据包是封装在IP数据包里的。
ICMP的错误报告只能通知出错数据报的源主机。
✧ICMP报文三种:差错报告(IP不可靠传输)、控制报文(用于重定向)、请求应答报文(测试路由是否可达ping)。
Ping的整个过程:1)同一网段内:如果主机A要去ping主机B。
主机A就要查询自己的MAC地址表,如果没有找到B的MAC地址,就会向外发送一个ARP广播包。
首先,交换机会收到这个报文,交换机有学习MAC地址的功能,他会检索自己有没有保存主机B的MAC 地址,如果有,就返回给主机A,没有,就会向所有端口发送ARP广播,其他主机收到后,发现不是找自己,就丢弃报文。
主机B收到报文后,就立即响应,发送自己的MAC地址,同时学习到主机A的MAC地B发送,B2)主机A要ARPC转发。
将ICMP15.C/S模式下使用socket通信,几个关键函数。
✧什么是Socket?WinSock(WindowsSockets)是处理网络通信的WindowsAPI。
许多函数与在BSD中使用的Berkely套接字函数是相同的。
套接字,简单的说就是通信双方的一种约定,用套接字中的相关函数来完成通信过程。
应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题。
多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据。
为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字(Socket)的接口。
区分不同应用程序进程间的网络通信和连接,主要有3个参数:通信的目的IP地址、使用的传输层协议(TCP 或UDP)和使用的端口号。
Socket原意是“插座”,通过将这3个参数结合起来,与一个“插座”Socket绑定,应用16.IP地址分类。
1、A类IP地址一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”,地址范围从。
可用的A类网络有126个2、B类一个B类3、C类一个C类C4、DD类IP5、E类以“llll0”开始,为将来使用保留。
全零(“0.0.0.0”)地址对应于当前主机。
全“1”的IP地址(“255.255.255.255”)是当前子网的广播地址。
在IP地址3种主要类型里,各保留了3个区域作为私有地址,也就是比较常用的ip地址。
其地址范围如下:17.路由器与交换机区别。
1)二者的工作层次不同交换机工作在数据链路层,路由器工作在网络层。
交换机工作在第二层,工作原理比较简单,而路由器工作在第三层,可以得到更多的协议信息,路由器可以做出更加智能的转发决策。
2)3)机有4)。