计算机网络(一)

OSI开放式互联参考模型

发送方层次由上向下,接收方层次由下向上
TCP/IP族 是OSI的实现

网络七层 数据格式 功能 TCP/IP协议族
应用层 Data(数据) 文件传输、电子邮件、文件服务、虚拟终端 TFTP HTTP SNMP FTP SMTP DNS Telnet
表示层 Data(数据) 数据格式化、代码转换、数据加密 -
会话层 Data(数据) 建立或解除与别的节点的联系 -
传输层 分段(数组组织成数据段segment) 提供端对端的接口 TCP UDP
网络层 分割重新组成数据包Packet 为数据包选择路由 IP ICMP RIP OSPF BCP IGMP
数据链路层 将比特信息封装成数据帧frame 传输有地址的帧以及错误检测功能 SLIP CSLIP PPP ARP RARP MTU
物理层 传输比特流 以二进制的数据形式在物理媒体上传输数据 ISO02110 IEEE802 IEEE802.2

TCP协议

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

TCP三次握手
握手是为了建立连接,TCP三次握手如下:
在这里插入图片描述
(有时候小写的ack也会写成Ack,与ACK不是一个东西)

  1. 第一次握手的时候SYN=1表示要创建连接同时初始需要seq = x(x可以指代任意数)
  2. 服务端同意连接发送确认报文SYN=1,ACK=1,seq=y(为自己的确认序列初始一个y),ack=x+1(回应请求的seq)
  3. 收到服务端确认报文,发送确认报文这时候不需要SYN,只需要ACK=1,seq=x+1,ack=y+1(响应服务端的seq)
    总结:
    在TCP/IP协议中,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三次连接是防止客户端如果有一次发送请求超时,然后又重新发送请求到服务端已经处理完,然后服务端在之后一段时间重新收到超时的请求,直接处理。

发布了51 篇原创文章 · 获赞 7 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/qq_28042463/article/details/104375148