网络协议的介绍

TCP/IP协议

TCP/IP协议是一个协议簇。里面包括很多协议的。包括UDP,TCP,IP协议。

TCP/IP协议集包括应用层,传输层,网络层,网络访问层。

应用层
超文本传输协议(HTTP):万维网的基本协议.
文件传输(TFTP简单文件传输协议):
远程登录(Telnet),提供远程访问其它主机功能,它允许用户登录 internet主机,并在这台主机上执行命令.
网络管理(SNMP简单网络管理协议),该协议提供了监控网络设备的方法,以及配置管理,统计信息收集,性能管理及安全管理等.
域名系统(DNS),该系统用于在internet中将域名及其公共广播的网络节点转换成IP地址.
 

运输层
TCP 传输控制协议
UDP 用户数据报协议


网络层
处理分组在网络中的活动,如分组的选路;网络层的协议包括IP协议
ICMP协议(Internet互联网控制报文协议)
IGMP协议(Internet组管理协议)


链路层
也称数据链路层或网络接口层,包括设备驱动程序和网络接口卡,它们一起处理与电缆的物理接口细节。链路层主要有三个目的为IP模块发送和接受IP数据
为ARP(地址解析协议)模块发送ARP请求和接受ARP应答
外RARP(反向地址转换协议)发送RARP请求和接受RARP应答

 TCP协议:传输控制协议

是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。

TCP三次握手过程

1.主机A通过向主机B 发送一个含有同步序列号的标志位的数据段给主机B ,向主机B 请求建立连接,通过这个数据段,主机A告诉主机B 两件事:我想要和你通信 和 你可以用此序列号作为起始数据段来回应我.
2.主机B收到主机A的请求后,用一个带有确认应答(ACK)和同步序列号(SYN)标志位的数据段响应主机A,也告诉主机A两件事:我已经收到你的请求了,你可以传输数据了 和 你要用此序列号作为起始数据段来回应我
3.主机A收到这个数据段后,再发送一个确认应答,确认已收到主机B的数据段:我已收到回复,我现在要开始传输实际数据了


TCP断开连接四次握手

1.当主机A完成数据传输后,将控制位FIN置1,提出停止TCP连接的请求
2.主机B收到FIN后对其作出响应,确认这一方向上的TCP连接将关闭,将ACK置1
3.由B 端再提出反方向的关闭请求,将FIN置1
4.主机A对主机B的请求进行确认,将ACK置1,双方向的关闭结束.

【问题1】为什么连接的时候是三次握手,关闭的时候却是四次握手?

答:因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。

 

UDP协议

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

UDP是一个简单的面向数据报的传输层协议。

TCP与UDP的区别

  1. TCP基于连接,UDP无连接
  2. TCP需要较多系统资源,UDP需要较少系统资源
  3. TCP程序结构较复杂,UDP程序结构简单
  4. TCP流模式,UDP数据报模式
  5. TCP保证数据正确性,UDP更容易丢包
  6. TCP保证数据顺序,UDP不保证数据顺序

Socket

socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),
通过Socket,我们才能使用TCP/IP协议。

 

Http协议


HTTP协议即超文本传送协议(HypertextTransfer Protocol)是一个基于请求与响应模式的、无状态的、应用层的协议,通常基于TCP协议之上。

HTTP请求
由三部分组成:请求方法、请求URL、消息报头、请求正文


请求方法(所有方法全为大写)有多种,各个方法的解释如下:
GET 请求获取Request-URI所标识的资源
POST 在Request-URI所标识的资源后附加新的数据
HEAD 请求获取由Request-URI所标识的资源的响应消息报头
PUT 请求服务器存储一个资源,并用Request-URI作为其标识
DELETE 请求服务器删除Request-URI所标识的资源
TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断
CONNECT 保留将来使用
OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求

HTTP响应也由三个部分组成:
状态码、消息报头、响应正文(3种格式,html,xml,JSON)

1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进行更进一步的操作
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务器端错误--服务器未能实现合法的请求


Http交互流程:

步骤一:客户端和服务器端建立连接 

步骤二: 客户端发送请求数据到服务器端(HTTP协议) 

步骤三: 服务器端接收到请求后,进行处理,然后将 处理结果响应客户端(HTTP协议) 

步骤四: 关闭客户端和服务器端的连接(HTTP1.1后不会立即关闭) 

 

OSI和TCP/IP分层模型:

 

HTTP,websocket,webservice的区别

webservice是基于HTTP协议的。WebService是一种跨编程语言和跨操作系统的远程调用技术。

WebSocket与HTTP的关系
相同点

都是一样基于TCP的,都是可靠性传输协议。
都是应用层协议


不同点

WebSocket是双向通信协议,模拟Socket协议,可以双向发送或接受信息。HTTP是单向的。
WebSocket是需要握手进行建立连接的。


联系
WebSocket在建立握手时,数据是通过HTTP传输的。但是建立之后,在真正传输时候是不需要HTTP协议的。
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值