标签:
最近在看《图解HTTP》和《HTTP权威指南》,对TCP/IP大致过了一下。
TCP/IP 不仅仅是TCP 和 IP
TCP/IP 是协议族,与之相对的事IEEE等标准组织设定的OSI七层。这里面涉及到的协议有:
作为一名java web工程师,可以说90%涉及的工作是HTTP协议,如果做IM或者云存储可能会涉及到TCP+UDP。所以,HTTP和TCP,是基本功。
为什么要分层,要能理解,每一层的意义所在
作为分隔两地的计算机系统上不同应用程序,他们之间如果需要通信,首先要知道对方是谁。
可以看到,这三层的行为模式很相近。那为什么要分为三层。
因为,数据传输要解决的问题太多了。通过对问题进行归类,不同层次来专门解决不同问题。有点工业2.0,福特生产线的味道。
传输层,要解决的事,两个应用程序间传输数据。其实问题很抽象,因为层次高。所以,只设定两个应用程序的地址(ip+端口)就好了。
网络层,要解决在跨越多个网络,长距离的情况下,我怎么找到另外一个主机,其实核心就是路由寻址。
然后,就进入了“最后半公里”,将ip转换为mac,在链路层传输分组。
分层,也是大型软件设计的工程学思想。
还有,每到下面一层时,一般都会进行数据切片分割?
因为需要复用。复用的场景是不同的。比如在数据链路层,有很多编码方式,还有什么频分复用、码分复用、时分复用等等,通过不同的编码方式来进行复用。
在网络层也是,通过分片,我可以走多个通路。并行的思想。
在传输层,有一个概念叫带宽,就算我能一下把所有数据给你送过去,你机器的内存难道不会撑爆吗。
标签:
原文地址:http://www.cnblogs.com/haore147/p/5510462.html