- 网络的架构:
-
网络从上至下分为:应用层 --> 传输层 --> 网络层 --> 数据链路层 --> 物理层
①: 网络层:HTTP、Telnet、FTP、TFTP 协议,提供网络编程的接口。
②:传输层:TCP、UDP 协议,建立端到端的连接。
③:网络层:IP 协议,寻址和路由。
④:数据链路层:Ethernet、802.3、PPP,物理介质访问。
⑤:物理层:接口和电缆,二进制数据流传输。 -
Http 编程:
①:Http 协议:超文本传输协议,用来定义客户端与服务器端的通信协议,也就是客户端向服务器端发送请求,服务器接收到请求后,将结果返回给客户端的过程。②:Http 工作流程:
Step1 : 用户点击浏览器上的url(超链接),Web浏览器与Web服务器建立连接
Step2:建立连接后,客户端发送请求给服务器,请求的格式为: 统一资源标识符(URL)+协议版本号(一般是1.1)+MIME信息(多个消息头)+一个空行
Step3:服务端收到请求后,给予相应的返回信息,返回格式为: 协议版本号 + 状态行(处理结果) + 多个信息头 + 空行 + 实体内容(比如返回的HTML)
Step4:客户端接收服务端返回信息,通过浏览器显示出来,然后与服务端断开连接;当然如果中途 某步发生错误的话,错误信息会返回到客户端,并显示,比如:经典的404错误!
③:Http 工作原理:

④:Http 协议特点:
A. 支持客户 / 服务器 模式,即 C / S ;
B. 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
C. 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求, 并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
D. 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。 缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每 次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
- 基于TCP 的Socket 编程:
①. Socket 是什么? :用来描述 ip 地址和端口号,又被称为套接字。
②. Socket 分为:服务器端 (ServerSocket) 和 客户端 (Socket);
③. Socket 通讯流程:


- 基于UDP 的Socket 编程
- TCP 与UDP 的区别:
①. TCP 有连接,UDP 无连接:和UDP不同,TCP是一种基于连接的协议。在使用流通信之前,我们必须在通信的一对儿socket之间建立连接。其中一个socket作为服务器进行监听连接请求。另一个则作为客户端进行连接请求。一旦两个socket建立好了连接,他们可以单向或双向进行数据传输。
②. TCP 耗时:在UDP中,每次发送数据报时,需要附带上本机的socket描述符和接收端的socket描述符。而由于TCP是基于连接的协议,在通信的socket对之间需要在通信之前建立连接,因此会有建立连接这一耗时存在于TCP协议的socket编程。
③. TCP 无数据大小限制,UDP 则有限制:在UDP中,数据报数据在大小上有64KB的限制。而TCP中也不存在这样的限制。一旦TCP通信的socket对建立了连接,他们之间的通信就类似IO流,所有的数据会按照接受时的顺序读取。
④:TCP 数据有序,可靠,UDP 无序,不可靠:UDP是一种不可靠的协议,发送的数据报不一定会按照其发送顺序被接收端的socket接受。然后TCP是一种可靠的协议。接收端收到的包的顺序和包在发送端的顺序是一致的。
网友评论