网络基础

1、一个通讯协议栈

通讯协议栈一般分为四层,自下而上分别分为:链路层,网络层(IP协议),运输层(TCP/UDP)和应用层


2、IP协议

IP协议主要规定数据传输的基本单元,格式,数据包的递交办法与协议,但其定义的传输是单向的,无法保证传输过程的完整性,因此在ip协议之上又发展出TCP协议;


3、TCP协议

TCP协议提供了一种面向连接,保证高可靠性(数据无丢失,失序,错误,重复)的一种传输协议,即在TCP模式的传输中,A发送一个数据包给B,B如果收到会回复一个数据包给A,通过这种方式提供可靠性;

TCP首部有6个标志bit,分别为SYN(同步序号用来发起一个连接), ACK(确认序号有效),RST(一般表示断开一个连接);

发起连接需要经过三次握手:客户端发起连接请求,服务端接受并发送确认信息给客户端,客户端收到确认信息再发送确认包给服务器。

断开连接需要四次通信:客户端发起断开请求,服务端收到请求会立即发送确认信息给客户端,再服务器正式关闭socket连接之后,会再向客服端发送一个断开请求,客户端收到服务端的断开请求之后会发送确认信息给服务端,连接正式断开。


4、Socket协议:

socket支持不同的传输层协议(TCP/UDP),这里只讲TCP,socket是网络端点的抽象表示,包含网络通信必须的5中信息:连接使用的协议,本地主机地址,本地进程端口,远程主机地址和远程主机进程的协议端口;

当使用TCP协议进行连接时,Socket就是一个TCP连接,其严格来讲不是一种新的协议,而只是一个调用接口,其只是实现了对TCP/IP协议的封装,使我们能够更方便的调用协议栈;

因为通常请款下Socket连接就是一种TCP连接,所以一旦连接建立,连接双方就可以相互发送数据,但是在实际网络应用中,客户端和服务端之间的连接需要通过很多中间节点,如路由器,网关,防火墙等,而大部分防火墙会默认关闭长时间处于非活跃状态的连接,所以通过轮询告诉网络,该连接处于活跃状态,这也是很多长连接中使用心跳包以保持连接状态的原因。


5、Http协议:

Http协议基于TCP协议,处于协议栈的应用层,其提供了封装和显示数据的具体形式。

Http协议采用“请求-响应模式”,必须是客户端向服务器发出一次请求,服务端才能回复数据,服务器不能向客服端主动推送数据,这是其与socket的区别之一

Http协议采用短连接的模式,一个请求-响应结束后会主动释放连接,Http1.1之后再一次请求-响应之后会连接会保持一定的时间以等待新的请求-响应,如果在等待期间没有,连接也会被释放。


参考文章:http://blog.csdn.net/zeng622peng/article/details/5546384




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值