再读计算机网络

一 下面三层(物理层,数据链路层,网络层)由网络运营商提供细节

 

 

System.out.println("...................尚未整理暂时省略");

 

二 应用程序负责传输层,应用层

2.1 UDP

    UDP 用户数据包协议。以下为使用udp为传输层协议的传输层应用以及其应用层协议。DNS,TFTP(简单文件传送协议),RIP(路由信息协议),DHCP(动态主机配置协议),SNMP(简单网络管理协议),NFS(网络文件系统),IGMP(多播);

    UDP无连接,尽最大努力交付,面向报文,没有拥塞控制,支持一对一,一对多,多对一,多对多通信方式,首部开销很小(8字节)。

    

    UDP首部格式。由源端口,目的端口,长度,检验和四部分组成。每个字段的长度都是两字节。

2.2 TCP

    TCP 传输控制协议。 TCP是传输层协议,以下为使用tcp为传输层协议的传输层应用以及其应用层协议。电子邮件-SMTP , 远程终端接入 - TELENT , 万维网 - HTTP , 文件传送-FTP ;

    TCP是面向连接的传输层协议,点对点传输,提供可靠交付(无差错,不丢失,不重复,并且按序到达),提供全双工通信,面向字节流。

    在java中  ,服务器通过serverSocket.accept() 来开启服务器套接字连接。(设置一个端口号) ; 而客户端通过一个套接字来新建一个socket对象来访问服务器的套接字。然后建立一个tcp连接。  每一条tcp连接唯一地被通信两端的两个端点(即两个套接字)所确定。

    当然两个套接字可以有多条tcp连接,但是一调tcp连接只由两个套接字所确定。

 

 

TCP的三次握手 , 和四次挥手图解。

 

2.3 TCP和UDP区别

1.    tcp是面向连接,有状态的 ; udp是无连接,无状态的。

2.   tcp是可靠传输,具有三次握手协议保证连接,数据传输结束四次分手释放连接 ; 丢失重传机制保证数据完整性 ; 还有拥塞控制流量控制等 ; 

3.   udp只是仅提供尽力交付 ; 没有其他功能。

4.  tcp头部20字节,udp只有8字节。

5.   由于udp是不需要建立连接并且没有上下文,所以udp的响应速度比tcp快。

 

2.4 可靠传输的工作原理

    tcp发送的报文是向下交给ip层来传送的,但是IP层只是提供最大努力服务。也就是说,tcp下面的网络所提供的是不可靠传输,因此tcp必须采用适当的措施才能保证两个传输层之间的通信变得可靠。

  

2.4.1 停止等待协议

     停止等待,就是每发送完换一个分组就停止发送,等待对方的确定,知道收到确定后在发送下一个分组。

其中包含一个超时重传进制,带有一个超时计时器。如果在计时内没有收到确定,则在发送一个同样的分组,知道确定。

几种情况分析。无差错情况,出现差错,确定丢失和确定迟到。

    这种方式信道利用率很低。

    这种可靠传输协议也叫做    自动重传请求  ARQ。

 

2.4.2 连续ARQ协议

    使用滑动窗口协议。

滑动窗口就是 对于一连串的数据报。先设定窗口大小为N , 首先把0 -(N-1)的数据报发送,如果0的确认被收到,则窗口向前移动一个单位,则发送N数据报,若发送N个数据后等待一个时延后认定为超时重传,则重传0。

    相比于停止等待协议,这种协议提高了信道利用率。主要体现在,发送方在发送数据报的时候也可以处理确认收到请求。

 

    会发现 自动重传只能够保证数据包能够按序的发送到接收方,但是对于数据包本身并没有保证,所以还需要了解tcp首部,tcp报文段首部包含对于数据包内容的描述, 接收方可以根据其完成对数据包内容完整性和真实性的检查。进而完成可靠传输的实现。

 

2.5 TCP报文段首部

源端口    2    ;目的端口     2    ;序号    4    ;确认号(期望收到对方下一个报文段的第一个数据字节的序号)    4    ;

数据偏移    4    ;保留    6    ;然后是六个控制位  紧急URG , 确定ACK , 推送PSH , 复位RST , 同步SYN , 终止FIN;

窗口    2    ;检验和    2    ;紧急指针    2    ;选项    长度可变。

所以在没有选项这一个部分时,tcp首部长度为20字节。

 

2.6   tcp的拥塞控制

仅仅是个人对于拥塞控制的简单理解。初步学习笔记。

 

    TCP的发送窗口是一个很好的想法。它辅助实现可靠传输,通过窗口值得更改实现了流量控制;并在拥塞控制上也有一定助益。

首先介绍一下进行拥塞控制的四种算法。    慢开始,拥塞避免,快重传,快恢复。

 

2.6.1 慢开始和拥塞避免

    发送方为此一个叫做拥塞窗口cwnd的状态变量,拥塞窗口的大小取决于网络的拥塞程度,并且动态的在变化。   

发送方让自己的发送窗口等于拥塞窗口。(如果接收方的接受能力减弱,发送窗口还可能小于拥塞窗口)。

    发送方控制拥塞窗口的原则是:只要网络没有出现拥塞,拥塞窗口就再增大一些,以便把更多的分组发送出去。但是只要网络出现拥塞,拥塞窗口就减小一些,以减少注入到网络中的分组数。

 

    慢开始就是在主机开始发送数据的时候,先探测一下,即有小到大逐渐增大发送窗口,也就是说,有小到大逐渐增大拥塞窗口数值。(没经过一个乱刺,拥塞窗口cwnd就加倍,一个轮次时间通常就是一个RTT,往返时间)。

    拥塞避免算法就是对慢开始的一种补充。实质指,拥塞窗口cwnd按线性规律缓慢增长,一般来说cwnd大小每次+1。

    在实际网络中。第一,当tcp连接时进行初始化,把拥塞窗口cwnd设置为1,(慢开始门限的初始值设置为16个报文段,即ssthresh = 16)。第二,在开始执行慢开始算法,拥塞窗口设置为1,然后被刺收到一个ack,就把拥塞窗口加倍,直到达到门限值16。然后执行拥塞避免算法,每次收到一个ACK时,拥塞窗口+1。

    如果此时网络出现拥塞现象,则将拥塞窗口初始化为1,ssthresh修改降低,然后重新执行慢启动算法,再到拥塞避免算法。

 

2.6.2 快重传和快恢复

    快重传  要求 接收方没收到一个失序的报文段后就立即发出重复请求,而不要等待自己发送数据时才进行捎带确认。(也就是即使发送对未到达数据的重传请求)

    快恢复 也是针对于快重传提出的,当发送方连续收到 三个重复确认时,就执行乘法减小算法。把慢开始门限ssthresh减半,并且把cwnd的值设置为ssthresh,然后执行拥塞避免算法。

 

注:发送方的cwn到一定不能超过对方给出的接受窗口值rwnd。

 

3 应用层

 

3.1 http

超文本传输协议

HTTP头部,状态码,cookie,HTTP无状态的,HTTP传输数据流程。

    

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值