网络七层,可以概括为三类,自上至下,7应用层是一类,属于应用软件需要遵守的协议。6表示层5会话层4传输层3网络层是第二类,属于系统软件需要遵守的协议。2数据链路层1物理层是第三类,属于物理层面需要遵守的协议。只有这些大家都遵守这些协议,世界各地的计算机才可以互相交流通信,传递信息。否则,你就是单机,或者局域网,自己玩意义就不大了。就像有些人说,dns根服务在美国,为什么我们不建立自己的根服务?可以是可以,但是,如果你的所有的金融系统,通信系统和世界各地不能通信,那么这个信息交流的价值将大打折扣。
应用软件类
第7层,应用层协议,即计算机之间交流所用的共同协议和约定,只有用共同的约定,一台计算机才能了解另一台计算机需要什么,想干什么,才能给予正确的反馈。比如http协议,ftp协议,telnet等。
电脑a和电脑b要交流:
a:我用http语言和你交流哦?。
b:你来吧!
a:我可以处理的文件是html,可以用gzip格式压缩给我,因为我这里流量很贵,还有我是用中文哦,要给我能看懂的文字。
Accept:text/html
Accept-encoding:gzip
Accept-language:zh-CN,zh;
b:给你!
Content-type:text/html;charset=utf-8
Content-type:gzip
a:......你很高冷哎,亲。
b:我是服务器,很忙!没事就挂了!
a:我有keep-alive功能哎。
Connection:keep-alive
b:不好意思,我这里不提供这种服务,拜拜。
Connection:close
系统软件类
第6层,表示层。http本质上是一种文本,讲到文本,就必须提供字符编码。世界上字符编码的方式千千万,上文的电脑a和电脑b有可能默认的编码方式是不一样,电脑a发送http请求时文本用utf-8或gbk编成二进制发送给电脑b,电脑b该怎么解析呢?他怎么知道用什么字符编码呢?他是不知道的,一堆二进制的数字,鬼知道你用什么编码编制的!请求头里告诉电脑b吗?亲,请求头也是二进制呢!表示层就是提供千千万万计算机共同的数据或信息的共同语法变换,hey,有一个翻译官在中间,这是件很棒的事情。除此之外,表示层还负责http内容的加密,https?,发送内容的压缩和解压缩。
第5层,会话层。建立会话和删除会话,是操作系统建立的套接字在做的事情,对,就是socket!!!会话之间信息大多时候是分包的,会话层保证接收的完整的包后,再通知表示层。
第4层,传输层。传输层是选择有差错恢复协议还是无差错恢复协议。典型的无差错是tcp,握手以及ack机制保证包的完整性。典型的有差错机制是udp,兄弟,我已经通知你了,收不收到我可不管!?
第3层,网络层。定义了能够标示所有计算机节点的所有逻辑地址。对!!就是ip协议。
物理层面
第2层,数据链路层。数据在链路中如何传输。不同的通信技术有不同的传输信号的方式,比如ADSL,光纤接入网。这些传输方式和各种传输介质有关。
第1层,物理层。制定了各种帧、电流、光调解等物理方面的规范。
开发者最亲密的还是应用软件中的第7层,系统软件中的第5层和第4层和第3层,唔~~~,其他的使用的就很少咯,能够了解就万事大吉啦。计算机的知识像大海,想游个遍么?通常都会肚子很胀哦。哈哈,还是择其重点而习之,其不重点而不习之。