网络分层
如下图是采用TCP/IP四层模型。应用程序运行在应用层,只与传输层通话,传输层只与应用层和网际层对话,网际层只与传输层和主机网路层对话,主机网络层通过光纤或其他介质将数据转移到远程系统的主机网络层,然后通过上述各层将数据逐级传输到远程系统的应用层中。
例如,当web浏览器向服务器发送请求的时候,
浏览器实际上只与本地的传输层进行交互。
传输层将请求分解为TCP片,向数据添加序列和校验,然后传输给本地网际层。
网际层根据本地网络的大小将各TCP片分成IP数据包,并传递到主机网络层以便通过线缆传输数据。
主机网络层将数字数据编码为合适的特定物理介质的模拟信号,将请求发送到线缆,目标地址的远程系统的主机网路层由此可以读取请求。
1、主机网络层
主机网络层定义了一个特定的网络接口(如以太网、WiFi天线)如何通过物理连接向本地网络或世界其他地方发送IP数据包。
2、网际层
网际协议(ip)是世界上使用最广泛的网络层协议,也是java唯一理解的网络层协议。在IPv4中,数据按包在网际层上传输,这些包称为数据报。每个IPv4的数据报包含一个长度为20至60字节的首部,以及一个包含65515字节数据的有效荷载。实际上,多数的IPv4数据报都小的多,从几十字节到稍大于8K字节不等。除了路由和寻址,网际层的第二个作用就是支持不同类型的主机网络层相互对话。
3、传输层
原始数据由一些缺陷,最显著的缺点是不能保证可靠传输。首部检测只能检查首部的破坏情况,而不能检测数据报中的数据部分。最后,即使数据能够到达目的地而未被破坏,也不一定会以发送时顺序到达。
所以我们需要一个能够确保各包以发送时候的顺序接收,并且保证没有数据丢失或破坏的层级,这就是传输层。
这层上有两个重要的协议
- tcp:保证可靠传输,开销大
- udp:不可靠传输,开销小,性能高。
4、应用层
向用户传输数据的层称为应用层。下面的三层规定如何从一台计算机传输到另一台计算机。应用层规定了数据传输后的操作。例如:应用层的http协议,文件传输的FTP协议,文件访问的NFS;