通信协议

计算机网络分为七层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

网络层有IP协议、ICMP协议、ARP协议、RARP协议、BOOTIP协议。

传输层有TCP协议、UDP协议。

应用层协议有FTP协议、HTTP协议、TELNET协议、SMTP协议、DNS协议等。


socket

为了实现以上的通信过程而建立用来通信的管道,其真实的代表是客户端和服务器端的一个通信进程,双方进程通过socket进行通信,而通信的规则采用指定的协议,socket只是一种连接模式,tcp、udp是两个最基本的协议,很多其他协议都是基于这两个协议


TCP(Transmission Control Protocol,传输控制协议)

TCP是面向连接的协议,在收发数居前,必须和对方建立可靠的连接,一个TCP连接必须要经过三次对话才能建立起来。

TCP三次握手建立连接过程

1.主机A通过向主机B发送一个含有同步序列号的标志为的数据段给主机B,向主机B请求建立连接,通过这个数据段,主机A告诉主机B两件事:我想要和你通信,你可以用哪个序列号做为起始数据段来回应我。

2.主机B收到主机A的请求后,用一个带有确认应答(ACK)和同步序列号(SYN)标志位的数据段响应主机A,也告诉主机A两件事:我已经收到你的请求了,你可以传输数据了,你要用哪个序列号做为起始数据段来回应我。

3主机A收到这个数据段后,再发送一个确认应答,确认已收到主机B的数据段,我已经收到回复,我现在要开始传输实际数据了。


TCP断开连接的4次步骤

1.当主机A完成数据传输后,将控制为FIN置1,提出停止TCP连接的请求。

2.当主机B收到FIN后对其作出响应,确认这一方向上的TCP连接将关闭,将ACK置1

3.由B端再提出反方向的关闭请求,将FIN置1

4.主机A对主机B的请求进行确认,将ACK置1,双方向的关闭结束。


UDP(User Data Protocol,用户数据协议)

1.UDP是一个非连接的协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地抓去来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。

2.由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息。

3.UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小。

4.吞吐量不受拥挤控制算法的调节,只手应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。

5.UCP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表

6.UDP是面向豹纹的饿,发送放的UDP对应用程序交下来的报文,在添加手部后就向下交付给IP层。既不拆分也不合并,二是保留这些报文的边界,因此,应用程序需要选择合适的报文大小。


我们经常使用ping命令来测试两台主机之间TCP/IP通信是否正常,其实ping命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息即使反馈回来,那么网络就是通的。



HTTPS

1.服务器用RSA生成公钥和私钥

2.把公钥放在证书里发送给客户端,私钥自己保存

3.客户端首先向一个权威的服务器检查证书的合法性,如果证书合法,客户端产生一段随机数,这个随机数就做为通信的密钥,我们称之为对称密钥,用公钥加密这段随机数,然后发送到服务器

4.服务器用密钥解密获取对称密钥,然后双方就以对称密钥进行加密解密通信了。


HTTPS相对于HTTP有哪些不同呢,其实就是在HTTP跟TCP中间多了一层加密层TLS/SSL,SSL是个加密套件,负责对HTTP的数据进行加密,TLS是SSL的升级办,现在提到HTTPS加密套件基本是指的TLS。



HTTP协议组成

第一部分Request line:

POST http://www.baidu.com  http/1.1

第二部分Request header:

Accept:image/gif,image/jpeg

Accept-Language:en-us

...

第三部分Body  

a=1&b=2








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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值