计算机知识体系补全-笔试准备-网络基础(五)运输层(很重要的一层!涉及TCP三次握手四次挥手等重点)

第五章 运输层(笔试重点,涉及socket编程)

把重中之重放到首位先阐述,即三次握手四次挥手!其他的之后可能单独写一篇针对具体内容,比如TCP报文首部格式的详细学习等。

三次握手:

最初两端TCP都处于CLOSED状态,然后是服务器先创建TCB(传输控制块),服务器进入listen状态,等待客户端发出请求连接。接下来,TCP一开始也做同样的事情->创建TCB,然后,开始了,向服务器发出连接请求报文段,揭开序幕。

1.客户端通过向服务器端发送一个请求报文段,这时首部中的同步位SYN=1,同时选择初始序号seq = x。

2.服务器端收到请求连接报文后,如同意就要向客户端发送确认报文段。此时,SYN = 1,ACK = 1,ack(确认号) = x + 1,同时也为自己选定一个初始序列号seq = y。

3.最后,客户端收到服务端的确认报文后,还需向服务端给出确认。确认报文段ACK = 1,ack = y + 1,seq = x + 1。TCP连接已经建立,客户端进入ESTABLISHED状态,当服务端受到这个ACK的时候,也进入ESTABLISHED状态,即完成三次握手。

四次挥手:

1.客户端发出连接释放报文,并停止发送数据。释放报文首部FIN = 1,序列号seq = u(等于前面已经传送过来的数据的最后一个字节的序号),此时客户端进入FIN-WAIT-1(终止等待1)状态

2.服务器收到连接释放报文,发出确认报文,ACK = 1, ack(确认号) = u + 1,seq = v。此时服务端进入CLOSE-WAIT(关闭等待)状态,并将剩余的数据发送给客户端。

3.客户端收到服务器确认报文后,进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文。

4.服务器将最后数据发送完毕,就向客户端发送连接释放报文,FIN = 1, ack = u + 1, seq = w,服务器进入LAST-ACK(最后确认)状态,等待客户端确认。

5.客户端收到连接释放报文,必须发出确认报文给服务器。ACK = 1,ack = w + 1, seq = u + 1。此时,客户端进入TIME-WAIT(时间等待)状态,此时TCP连接尚未释放,服务器收到客户端的确认报文立即进入CLOSED状态,当客户端等待 2MSL 后未收到回复, 则认为服务器成功关闭, 客户端关闭连接,四次握手结束。

运输层:关键层次之一

要弄清的概念有:

1.运输层为相互通信的应用进程提供逻辑通信

2、端口、套接字的意义

3.无连接的UDP的特点

4.面向连接的TCP的特点

5.在不可靠的网络上实现可靠传输的工作原理,停止等待协议和ARQ协议

6.TCP滑动窗口、流量控制、拥塞控制和连接管理

 

运输层向上面的应用层提供服务

通信的真正端点并不是主机,而是主机进程

也就是端到端的通信是应用进程之间的通信

运输层有一个重要功能:复用和分用

网络层为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信

运输层最主要的两种不同的运输协议:

面向连接的TCP(传输控制协议)和无连接的UDP(用户数据报协议)

TCP/IP体系中,数据单位叫TCP报文段和UDP用户数据报

UDP在传送数据之前,不需要建立连接,不提供可靠交付

TCP则提供面向连接的服务,在传送数据之前必须先建立连接,数据传送结束后要释放连接,TCP提供广播或多播服务。

TCP提供可靠的、面向连接的运输服务,会增大开销

 

使用UDP和TCP协议的各种应用和应用层协议:(重点记住TCP的)

运输层协议为TCP的应用的应用层协议:

1.电子邮件 SMTP(简单邮件传送协议)

2.远程终端接入 TELNET(远程终端协议)

3.万维网 HTTP(超文本传送协议)

4.文件传送 FTP(文本传送协议)

 

运输层是UDP的应用的应用层协议:最经典的是DNS(域名系统),DCHP(动态主机配置协议),SNMP(简单网络管理协议)

 

互联网上的计算机通信采用客户-服务器方式,客户发起通信请求时,必须先知道对方的IP地址和端口号,之前做过的micropython实验有用过socket编程,例如s = socket.socket(),创建套接字后,s.connect((host, port))

其中host就是主机IP地址,port即端口号

熟知端口号(记住TCP的几个):

FTP:21

TELNET:23

SMTP:25

HTTP:80

HTTPS:443(加密的HTTP)

 

UDP:概述(重点还是TCP)

UDP只在IP的数据报服务之上增加了很少一点功能:即复用分用和差错检测

UDP的主要特点:

1.UDP是无连接的

2.UDP使用尽最大努力交付,而不保证可靠交付

3.UDP是面向报文的

4.UDP没有拥塞控制

5.UDP支持一对一、一对多、多对一、多对多的交互通信

6.UDP的首部开销小,只有8个字节,TCP有20个字节

 

 

TCP:(重磅)

TCP的主要特点:

1.TCP是面向连接的运输层协议,应用程序在使用TCP协议之前,必须建立TCP连接,在传送数据完毕后,还要释放已经建立的TCP连接。

2.每一条TCP连接只能是点对点的

3.TCP提供可靠交付的服务

4.TCP提供全双工通信

5.面向字节流:TCP的流指的是流入到进程或从进程流出的字节序列

 

TCP把连接作为最基本的抽象。

TCP连接的端点叫做套接字(socket)或插口。端口号拼接到IP地址即为套接字,例如(192.3.4.5:80)前面部分是IP地址,80是端口号,这就是一个套接字

每一条TCP连接唯一地被通信两端的两个端点(即两个套接字)所确定

可靠传输工作原理:(简述)

TCP发送的TCP报文段交给IP层,然而IP层只能提供尽最大努力交付服务,并不是可靠传输的服务,所以需要停止等待协议来变得可靠

1.无差错情况,A发送分组,发完暂停,等待B的确认;B接收分组,并发送确认给A;A收到后再发下一个分组。

2.出现差错(超时重传)B接收过程出现差错,但无论如何不会发送任何消息给A,A在经过一段时间 没收到确认消息,就断言刚才的分组丢失,重新发送,这就是超时重传。

3.确认丢失和确认迟到

确认丢失就丢弃重复分组,,再发送确认消息给A

确认迟到,A会收到重复确认,处理方式是收下就丢弃,B仍收到重复分组,丢弃重复分组并重传确认分组

 

4.信道利用率:

U = TD/(TD + RTT + TA)

其中TD等于分组长度(单位为bit)除以数据率(单位为bit/s),RTT(单位为ms),TA一般都远小于TD,有些忽略不进入计算

 

TCP利用滑动窗口来实现流量控制

TCP的拥塞控制:在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏,这种情况就叫做拥塞控制。

TCP的拥塞控制算法:

1.慢开始

2.拥塞避免

3.快重传

4.快恢复

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值