计算机网络

一、计算机网络的体系结构

OSI的体系结构:物理层、数据链路层、网络层、运输层、会话层、表现层、应用层;

TCP/IP的体系结构:应用层(各种应用层协议:telnet,ftp,smtp等)、运输层(TCP/UDP)、网际层IP、网络接口层

五层协议的体系结构:物理层、数据链路层、网络层、运输层、应用层。

下图来自经典教材:计算机网络(谢希仁)

物理层:通过媒介传输比特,确定机械及电气规范(比特Bit)
数据链路层:将比特组装成帧和点到点的传递(帧Frame)
网络层:负责数据包从源到宿的传递和网际互连(包PackeT)
传输层:提供端到端的可靠报文传递和错误恢复(段Segment)
会话层:建立、管理和终止会话(会话协议数据单元SPDU)
表示层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU)
应用层:允许访问OSI环境的手段(应用协议数据单元APDU)

二、物理层

重点不多,再议

三、数据链路层

1.CSMA/CD协议

原理:先听后发,边发边听,冲突停发,随机延迟后重发

(1) 监听:通过专门的检测机构,在站点准备发送前先侦听一下总线上是否有数据正在传送(线路是否忙)?

                    若“忙”则进入后述的“退避”处理程序,进而进一步反复进行侦听工作。

                    若“闲”,则一定算法原则(“X坚持”算法)决定如何发送。

(2) 发送:当确定要发送后,通过发送机构,向总线发送数据。

(3) 检测:数据发送后,也可能发生数据碰撞。因而,要对数据边发送,边检测,以判断是否冲突了。

(4)冲突处理:当确认发生冲突后,进入冲突处理程序。有两种冲突情况:

          ① 若在侦听中发现线路忙,则等待一个延时后再次侦听,若仍然忙,则继续延迟等待,一直到可以发送为止。每次延时的时间不一致,由退避算法确定延时值。

         ② 若发送过程中发现数据碰撞,先发送阻塞信息,强化冲突,再进行监听工作,以待下次重新发送(方法同①)

退避算法:

当出现线路冲突时,如果冲突的各站点都采用同样的退避间隔时间,则很容易产生二次、三次的碰撞。因此,要求各个站点的退避间隔时间具有差异性。这要求通过退避算法来实现。

截断的二进制指数退避算法(退避算法之一):

当一个站点发现线路忙时,要等待一个延时时间M,然后再进行侦听工作。延时时间M以以下算法决定:

M = 0 ~ (2^k - 1) 之间的一个随机数乘以512比特时间(例如对于10Mbps以太网,为51.2微秒),k为冲突(碰撞)的次数,M的最大值为1023,即当k=10及以后M始终是0~1023之间的一个随机值与51.2的乘积,当k增加到16时,就发出错误信息。

X坚持的CSMA:

- 非坚持的CSMA:线路忙,等待一段时间,再监听;不忙时,立即发送;减少冲突,信道利用率降低:

- 1坚持的CSMA:线路忙,继续侦听;不忙时,立即发送;提高信道利用率,增大冲突:

- p坚持的CSMA:线路忙,继续侦听;不忙时,根据p概率进行发送,另外的1-p概率为继续侦听(p是一个指定概率值);有效平衡,但复杂

四、网络层

五、运输层

两个对等实体在通信时传送的数据单元叫做运输协议数据单元。

1.UDP(用户数据报协议)

特点:面向无连接,时延低;

           尽最大努力交付,不可靠;

           面向报文;

           没有拥塞控制;

           支持一对多,多对多,多对一通信;

           首部开销小(8字节,TCP20字节)

报文格式:

2.TCP(传输控制协议)

特点:面向连接的协议;

           只能有两个端点,点对点连接;

           提供可靠的交付; 

           提供全双工通信;

           面向字节流;

可靠传输的原理:

停止等待协议:每发完一组数据,就等待对方确认;得到对方的确认后,再发送下一个分组。

连续ARQ协议:发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。

报文首部格式:

TCP的流量控制

TCP拥塞控制的方法:

慢开始、拥塞避免、快重传、快恢复;

慢开始算法的思路:当主机开始发送数据时,并不清楚网络的负荷状况,如果立即把大量的数据字节注入网络,那么就可能引起网络拥塞。较好的方法是先探测一下,即由小到大逐渐增大发送窗口,也就是说由小到大逐渐增大拥塞窗口数值。

拥塞避免算法:让拥塞窗口缓慢增大,即没经过一个RTT就把发送方的拥塞窗口加1,“加法增大”。

TCP建立连接(三次握手):

第一次握手:客户端发送syn包(syn=x)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。

TCP连接释放(四次挥手):

第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不 会再给你发数据了(当然,在fin包之前发送出去的数据,如果没有收到对应的ack确认报文,主动关闭方依然会重发这些数据),但是,此时主动关闭方还可 以接受数据。
第二次挥手:被动关闭方收到FIN包后,发送一个ACK给对方,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号)。
第三次挥手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了。
第四次挥手:主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手。

TCP和UDP之间的区别:

  • TCP提供面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输。
  • TCP传输单位称为TCP报文段,UDP传输单位称为用户数据报。
  • TCP注重数据安全性,UDP数据传输快,因为不需要连接等待,少了许多操作,但是其安全性却一般。

如果对实时性要求高和高速传输的场合下需要使用udp;如果需要传输大量数据且对可靠性要求高的情况下应该使用tcp;在可靠性要求较低,追求效率的情况下应该使用udp

六、应用层

地址解析协议(ARP)的工作原理:

       首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系。
       当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,如果有,则直接发送数据,如果没有, 就向本网段的所有主机发送ARP数据包,该数据包包括的内容有:源主机 IP地址,源主机MAC地址,目的主机的IP 地址。
       当本网络的所有主机收到该ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的IP和MAC地址写入到ARP列表中,如果已经存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址。
        源主机收到ARP响应包后。将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。
        广播发送ARP请求,单播发送ARP响应。

RARP协议的工作原理:

RARP是逆地址解析协议,作用是完成硬件地址到IP地址的映射,主要用于无盘工作站,因为给无盘工作站配置的IP地址不能保存。工作流程:在网络中配置一台RARP服务器,里面保存着IP地址和MAC地址的映射关系,当无盘工作站启动后,就封装一个RARP数据包,里面有其MAC地址,然后广播到网络上去,当服务器收到请求包后,就查找对应的MAC地址的IP地址装入响应报文中发回给请求者。因为需要广播请求报文,因此RARP只能用于具有广播能力的网络。

浏览器解析域名的全过程:

      1、客户端浏览器通过DNS解析到域名的IP地址xxx.xxx.xxx.xxx,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到xxx.xxx.xxx.xxx,然后通过TCP进行封装数据包,输入到网络层。
      2、在客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。然后使用IP层的IP地址查找目的端。
      3、客户端的网络层不用关心应用层或者传输层的东西,主要做的是通过查找路由表确定如何到达服务器,期间可能经过多个路由器,这些都是由路由器来完成的工作,我不作过多的描述,无非就是通过查找路由表决定通过那个路径到达服务器。
      4、客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址。

DNS域名系统:

当DNS客户机需要在程序中使用名称时,它会查询DNS服务器来解析该名称。客户机发送的每条查询信息包括三条信息:包括:指定的DNS域名,指定的查询类型,DNS域名的指定类别。基于UDP服务,端口53. 该应用一般不直接为用户使用,而是为其他应用服务,如HTTP,SMTP等在其中需要完成主机名到IP地址的转换。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值