计算机网络(学习复习)

OSI开放式互联参考模型(OSI七层协议)

第一层物理层

解决两台物理机之间的通信需求,即机器A向机器B发送bit流,物理层主要定义了物理设备的标准。传输bit流

第二层数据链路层

定义了如何格式化数据来进行传输,如何控制对物理介质的访问,错误检测和纠正。传输帧

第三层网络层

将网络地址翻译成相应的物理地址,并定义如何将数据从发送方路由到接收方。数据包、IP

第四层传输层

接收上一层的数据,在必要的时候把数据进行分割,并将这些数据交个网络层,且保证这些数据有效到达、TCP、UDP

第五层会话层

建立和管理应用程序之间的通信、应用程序自动调用TCP、IP收发信息

第六层表示层

帮我们解决不同系统之间语法不同的问题

第七层应用层

规定发送方和接收方必须使用一个固定长度的消息头。指在使用户更加方便的使用网络。HTTP

OSI的实现“TCP/IP协议”

在这里插入图片描述
在这里插入图片描述

TCP的三次握手

IP

IP协议是一种无连接的协议,不会占用通信线路,每条线可以满足多个应用使用
IP数据包不能保证是否顺序发送是否全部送到所以是不可靠的
需要由上层协议控制

传输控制机械TCP简介

面向连接的、可靠的、基于自己留的传输层通信协议
将应用层的数据流分割成报文段并发送给目标节点的TCP层
数据包都有序号,对方收到则放松ack确认,未收到则重传
运用奇偶校验和来验证数据在传输过程中是否有误

说说TCP的三次握手

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。

  • 第一次握手:建立连接时,客户端发送SYN包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
  • 第二次握手:服务器收到SYN包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
  • 第三次握手:客户端收到服务器端SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

为什么需要三次握手才能建立起连接

为了初始化Sequence Number的初始值

首次握手的隐患—SYN超时

  • Server收到Client的SYN,回复SYN-ACK的时候未收到ACK确认
  • Server会不断重试直至超时,Linux默认重试5次也就是共等待63秒才断开连接

TCP的四次挥手

“挥手”是为了终止连接连接

  • 第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态;
  • 第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态;
  • 第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态;
  • 第四次挥手:Client收到FIN后,Client进入TINE_WAIT状态,接着发送一个ACK给Server,确认序号为接收序号+1,Server进入CLOSE装填,完成四次挥手
原文地址:https://www.cnblogs.com/zhangguangxiang/p/14232544.html