网络协议

参考博客:

https://blog.csdn.net/sinat_36629696/article/details/80740678

https://www.cnblogs.com/jking10/p/5525519.html

一、TCP

1. 基础概念

TCP是传输控制协议

TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接

TCP报头:

6个标志位的含义:
URG: 标识紧急指针是否有效
ACK: 标识确认序号是否有效
PSH: 用来提示接收端应用程序立刻将数据从tcp缓冲区读走
RST: 要求重新建立连接. 我们把含有RST标识的报文称为复位报文段
SYN: 请求建立连接. 我们把含有SYN标识的报文称为同步报文段
FIN: 通知对端, 本端即将关闭. 我们把含有FIN标识的报文称为结束报文段
 

2. TCP三次握手:

三次握手完毕之后,客户端和服务器才开始正式传送数据

为什么不用两次握手?

为了避免误以为失效的请求被传送到服务端

因为客户端在向服务端发请求的时候,如果第一个请求因为网络问题停在中途,此时,客户端误以为请求发送失败再次发送请求,如果第一个请求又到达了服务端,就会创建两次连接;也就导致了不必要的错误和资源浪费

3. TCP四次挥手

序列号为seq,TCP规定,FIN报文段即使不携带数据,也要消耗一个序号。

第二次挥手之后:客户端向服务器的方向就释放了,这时候处于半关闭状态,即客户端已经没有数据要发送了,但是服务器若发送数据,客户端依然要接受。

为什么最后客户端还要等待 2*MSL的时间呢?

第一,是为了避免最后那个ACK报文丢失,一旦丢失了可以重传;第二,是为了保证旧连接的全部请求到服务端,避免新连接中包含旧连接的请求。

二、HTTP

HTTP即超文本传送协议,是建立在TCP协议之上的一种应用

HTTP在每次请求结束之后都会主动释放连接,因此HTTP是一种短连接

三、SOCKET原理

套接字(socket):是通信的基石,是TCP/IP协议的网络通信的基本操作单元

为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了套接字接口。应用层和传输层通过socket接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务

如何建立socket连接:

建立socket连接至少需要一对套接字,其中一个是ClientSocket(运行于客户端),一个是ServerSocket(运行于服务端)。套接字之间的连接过程分为三个步骤:服务器监听、客户端请求、连接确认

socket连接与HTTP:

创建Socket连接时,可以指定使用的传输层协议,Socket可以支持不同的传输层协议(TCP或UDP),当使用TCP协议进行连接时,该Socket连接就是一个TCP连接。

由于通常情况下Socket连接就是TCP连接,因此Socket连接一旦建立,通信双方即可开始相互发送数据内容,直到双方连接断开。为了避免中途socket连接断开,因此需要通过轮询告诉网络,该连接处于活跃状态。

四、IP协议

网络中的IP地址是唯一的,IP协议根据数据包的目的IP地址来决定如何投递它,如果数据包不能直接发送给目标主机,则IP协议为数据包寻找下一条路由器,由路由器进行转发到目标主机

IP地址分为网络号和主机号:网络号是保证相互连接的两个网段具有不同的标识。主机号是,同一网段内,主机之间具有相同的网络号,但是必须又不同的主机号

eg:192.168.128 /24(这就是网段号标识)(/24表示到24位一直都属于网段号)

        192.168.128.10(表示192.168.128网段下的一台主机的主机号是10)

子网就是指网络号相同的主机被放在了一起

子网掩码:将IP地址与子网掩码进行按位与操作,得到的结果就是网络号

一个路由器可以配置两个IP地址,一个是WAN口IP,一个是LAN口IP(子网IP)。子网内的主机需要和外网进行通信时,路由器将IP首部的IP地址进行替换(替换成WAN口IP),这样逐级替换,最终数据包中的IP地址成为一个公网IP,这种技术称为NAT(网络地址转换)

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值