Android 网络体系、TCP/IP

本文详细介绍了计算机网络的OSI、TCP/IP和五层体系架构,重点讲解了TCP的连接建立与释放过程,包括三次握手和四次挥手,并对比了TCP与UDP的区别,探讨了TCP的可靠传输、流量控制和拥塞控制机制。同时,对网络层的IP地址、ICMP协议和路由器与交换机的功能进行了阐述。
摘要由CSDN通过智能技术生成

本文摘抄自:《计算机网络-第七版》

一、计算机网络三种体系架构,OSI体系架构(7层)、TCP/IP体系架构(4层),五层体系架构

OSI、TCP/IP、五层体系架构
OSI 协议7层体系结构 TCP/IP 协议4层体系结构 五层协议体系结构
7 应用层
6 表示层:信息的语法语义、加密解密、转换翻译、压缩解压缩等
5 会话层:不同机器上的用户之间建立、管理会话
4 应用层:应用进程间的交互,完成特定网络应用
应用层 数据单元: 报文
应用层协议,定义 应用进程间通信、交互规的规则
(各种应用层协议如 telnet,ftp, smtp,http)
5 应用层
4 传输层 3 传输层(TCP/UDP)
为进程间通信 提供 通用的 数据传输服务
通用:一台主机的多个应用可使用同一个传输层服务
传输层 有 复用、分用 的功能
复用:多个应用层进程同时使用下面传输层服务
分用:剥去报文的首部后,通过端口号,把数据传给目的进程
传输层 要检测接收到的报文
4 传输层
3 网络层 2 网络层(IP、路由器)
1)为 不同主机 提供 通信服务
2)选择合适的路由,通过网络中的路由器,找到目的主机
网络层把传输层的 报文段 / 用户数据报 封装成 分组 / 包(packet) 进行传送
在TCP/IP体系中,分组叫作 IP数据报 简称为 数据报

网络层协议:无连接的网络协议 (IP、路由选择协议)
网络层,只检验首部,不检查数据部分
3 网络层
2 数据链路层
链路:结点 之间的一段物理线路
链路层 运行在 主机、路由器 之间
结点:运行链路层协议的设备
链路层设备:网卡、网桥、交换机

数据链路层 将 IP数据报 组装成 帧,在链路上传送帧
每一帧包括 数据、必要的控制信息(如同步信息、地址信息、差错控制等)

控制信息,指定一个帧,从哪个比特开始、到哪个比特结束
数据链路层收到一个帧后,提取处数据部分,上交给网络层

控制信息,检测收到的帧,有差错,则丢弃出了差错的帧
如果要纠正错误,要采用可靠传输协议 来纠正出现的差错

1 物理层
物理层传输的数据单位是 比特

物理层需要:
对物理媒体做规范,屏幕不同物理媒体差异
确定 代表 “1” 或 “0”的电压,以及接收方如何识别
确定 连接电缆的插头应当有多少根引脚以及各条引脚应如何连接

解释比特的意思,不是物理层的任务
传递信息所利用的一些物理媒体,不属于物理层,而是在物理层协议的下面
1 网络接口层 2 数据链路层
1 物理层

两个主机数据传输
在这里插入图片描述
TCP / IP体系结构
在这里插入图片描述
传输层协议

协议 区别 说明
TCP 传输控制协议
(Transmission Control Protocol)
面向连接的、可靠的、数据传输服务
数据传输的单位是 报文段 (segment)


传输数据前需要建立连接
接收到 TCP 报文后,需要确认
通信结束后,必须释放连接

只支持一对一通信
TCP 连接的两端都有 发送缓存、接收缓存

发送时, 应用层把数据传到 TCP的缓存
,TCP在合适的时候把数据发送出去

接收时,TCP 把收到的数据放入缓存,应用层在合适的时候读取缓存中的数据


TCP 面向字节流,把应用层传入的数据看成无结构的字节流
TCP 有流量控制、拥塞控制
根据对方给的窗口值、当前网络的拥塞程度,控制报文段长度
UDP 每次发送一个完整的报文,UDP 报文长度由应用层确定
传输层使用 TCP应用层协议
SMTP(简单邮件传送协议)
TELNET(远程终端协议)
HTTP(超文本传送协议)
FTP(文件传送协议)
UDP 用户数据协议
(User Datagram Protocol)
无连接的、不保证传输可靠性 、的数据传输服务
数据传输的单位是 用户数据报


传输数据前不需要建立连接
接收到UDP报文后,不需要给出任何确认
UDP 没有拥塞控制
网络出现的拥塞,不会使源主机发送速率降低


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

UDP的首部开销小,只有8个字节

比 TCP的20个字节的首部要短

首部:源端口、目的端口、数据长度等
UDP 会把首部、数据部分都检验
传输层使用 UDP应用层协议
DNS(域名系统 传输层是 UDP 协议)
RIP(路由信息协议)


UDP 一次交付一个完整的报文
因此,
应用层必须选择合适大小的报文
报文太长,IP层传送时可能要分片,降低IP层的效率
报文太短,会使IP数据报首部相对长度太长,降低了IP层的效率
传输层的端口
16 位的端口号表示端口(65535个)
标识应用层各进程、传输层 交互的层间接口
1、服务器端口号:
常用端口 / 系统端口:0 - 1023
FTP:21、DNS:53、HTTP:80、HTTPS:443
登记端口:数值为 1024 - 65535
客户端与服务端某进程通信时
需要知道服务端进程使用的端口


2、客户端的端口号:
数值为 49152 - 65535
仅在客户进程运行时动态选择
通信结束后,释放端口号,供其他进程使用
客户端本机应用层进程、传输层交互时
使用端口区分不同进程

TCP 连接与释放连接

操作 过程
三次握手 1、客户端向服务端 请求连接,客户端 SYN-SENT(同步已发送)状态
2、服务端向客户端发送 确认连接,服务器进入 SYN-RCVD(同步已接收)状态
3、客户端向服务端发送 已收到确认,客户端进入ESTABLISHED (已连接)状态
四次挥手 1、客户端向服务端发送 释放连接请求
客户端进入 FIN-WAIT-1(终止等待1)状态

2、服务端向客户端发送确认
服务端进入CLOSE-WAIT(关闭等待)状态
客户端收到确认后,进入FIN-WAIT-2(终止等待2)状态
客户端,等待服务端发出的连接释放报文段

3、服务端向客户端发送释放连接报文段
服务端进入LAST-ACK(最后确认)状态,等待客户端确认

4、客户端 收到服务端连接释放报文段后,向服务端发送确认
服务端收到客户端发出的确认后,进入 CLOSED状态
客户端进入TIME-WAIT(时间等待)状态

此时 TCP 连接还没有释放掉
启动计时器,等待 2倍 MSL(Maximun Segment Lifetime 最长报文寿命)后,
客户端菜进入到CLOSED 状态

客户端等待 2MSL 时间的原因:
1)保证客户端发送的最后一个确认,能够到达服务器

如果确认报文段丢失,导致服务器收不到确认。
服务端会超时重传连接释放报文段
客户端在 2MSL时间内收到服务端重传的连接释放报文段
接着客户端重传一次确认,重新启动2MSL计时器

最后客户端、服务端都正常进入到CLOSED 状态

2)防止“已失效的连接请求报文段”出现在本连接中
客户端发送完最后一个确认报文段后,再经过2MSL,
使本连接持续的时间内产生的所有报文段从网络中消失

TCP 协议详解

TCP 的功能 原理
连接端点 Socket TCP连接的端点叫 套接字(socket)
套接字 socket = (IP地址:端口号)
一个 TCP连接,唯一地被通信两端的两个端点(两个套接字)所确定
套接字socket,属于传输层,不是一种协议
可靠传输-停止等待协议 网络层提供的是不可靠的传输,TCP必须实现可靠性

1、停止等待协议
停止等待:每发送完一个分组,就停止发送,等待对方确认
收到确认后再发送下一分组


优点:简单
缺点:信道利用率太低(每次只能传输一个报文段)

异常处理规则:
接收方:接收数据时检测出现差错,丢弃出错的分组(不通知发送方)
发送方:超过时未收到确认,重传前面发送过的分组(超时重传)

超时重传实现:每发送完一个分组设置一个超时计时器
在计时器到期之前收到确认,则撤销该超时计时器
否则,重新发送该分组

注意点:
1)发送方发送完一个分组后,必须暂时保留已发送的分组的副本
收到接收方确认后,才能清除暂时保留的分组副本


2)分组、确认分组都 必须进行编号
明确是哪一个发出去的分组收到了确认,哪一个没收到确认

3)计时器 超时时间,应当比数据在分组传输的平均往返时间更长一些
过长,通信效率会很低
太短,易导致产生不必要的重传

接收方,发出的分组确认丢失 / 延迟,导致发送方触发超时重传
此时,接收方:丢弃这个重传的重复分组,然后重新发送确认
可靠传输-连续ARQ 协议 2、连续ARQ协议

发送方:
维持一个发送窗口,发送窗口内的多个分组可以连续发送
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值