协议的分层:

为解决不同计算机之间的通信,ISO(International Organization for Standards)指定了一个国际标准OSI(Open Systems Interconnection,开放式系统互联)。现在OSI虽然没有得到普及,但是提出的OSI参考模型常常被用于网络协议的制定中。

(TCP/IP并非ISO所制定的标准,而是由IETF(Internet Engineering Task Force)所建议的,致力于推进标准化作业的一种协议。)

OSI参考模型将通信协议中的功能分成了7层,通过分层使得那些比较复杂的网络协议简单化。上下层之间进行交互时所遵循的约定叫做“接口”,同一层之间交互所遵守的约定叫做“协议”。分层可以将每个层独立使用,增强系统的灵活性;分层的缺点在于,每个模块可能需要实现重复的逻辑功能。


OSI参考模型:

1)应用层: 为应用程序提供服务并规定应用程序中通信的细节。例如,文件传输,电子邮件,远程登录等协议。

2)表示层:将应用层传来的信息转换为适合网络传输的格式;将来自下一层的数据转换为应用层能够处理的格式;主要负责数据格式的转换。

3)会话层:负责建立和断开通信连接,数据的分割,等。

4)传输层:起着可靠传输的作用,只在通信双方节点上进行处理,而无需再路由器上处理。---???

5)网络层:将数据传输到目标地址,主要负责寻址和路由选择。

6)数据链路层:负责物理层面上互联的节点之间的通信传输。----?

7)物理层:负责0、1比特流与电压的高低,光的闪灭之间的互换。

OSI参考模型通信处理举例:

用户A发送邮件给用户B:

发送方从第7层,第六层,直到第1层,由上至下发送数据,而接收端顺序相反。对于每一个分层,在处理由上一层传输过来的数据时可以附上当前分层的协议所需要的首部信息。

1)应用层: 用户A用邮件软件来写邮件,填写地址,当其按下发送之后,软件就进入了应用层协议的处理。协议会在所要发送的数据的首部加上特定信息。B的邮件软件接受到数据之后,会识别该首部信息-----相当于A和B的应用层之间的通信。

2)表示层: 该层关注的是数据的“表现”形式,其作用是将数据从“某个计算机特有的数据格式”转换为“网络通用的标准数据格式”,然后再发送出去,接受端接受到之后,将通用的标准格式转换为接收端的主机能识别格式,再进行相应的处理。这样就防止了由于不同的主机有不同的数据格式而不能相互通信。该层与编码格式相关(?)。

3)会话层: 假设A写了2封邮件给B,这两封邮件的发送顺序可能有多种,例如,可以没发送一个就建立一次连接随后断开,或,一旦建立好连接后就将邮件连续发送给对方。--- 采用何种方式便是会话层的主要责任。  改层也想应用层,表示层那样,在其收到的数据前加上标签信息,然后发送给下一层,标签信息中记录着数据的传送顺序。

传输层以下的处理: 会话层只对何时建立连接,何时发送数据等问题进行管理,并不具备实际的数据传输功能,真正实现在网络上传送实际数据的是会话层以下的层。

4)传输层

传输层负责在建立逻辑上的通信连接,进行建立或断开连接的工作。(会话层决定建立和断开连接的时机,而传输层进行时机的建立和断开连接)。另,传输层为确保所传输的数据到达目标地址,会在通信两端的计算机之间进行确认,如果数据没有达到,它会负责重发。

保证数据传输的可靠性是传输层的重要作用。为了确保可靠性,该层也会在其传送的数据首部添加信息,然而,实际上,将数据传送给对端的处理是由网络层完成的。

(5)网络层,数据链路层,物理层

网络层的作用是在网络与网络互连的环境中,将数据从发送端主机发送到接收端主机。

通信最终是通过物理介质完成的,数据链路层的作用是 在通过传输介质互连的设备之间进行数据处理。

物理层,将数据的0,1转换为电压和脉冲光传输给物理的传输介质。

另,MAC地址(Media Access Control)用于识别连接到同一个传输介质上的设备。-----????

TCP/IP学习笔记2--协议分层与OSI参考模型的更多相关文章

  1. TCP/IP学习笔记12-- IP协议基础

    IP(internet protocol, 网际协议) IP相当于OSI参考模型中的第三层 -- 网络层. --网络层的下一层--数据链路层的主要作用是在 同一种数据链路 的节点之间进行包传递,而一旦 ...

  2. tcp/ip学习笔记-TCP

    tcp/ip学习笔记-TCP 彭会锋 报文发送采用的是tcp_output函数,

  3. tcp/ip学习笔记(1)-基本概念

    为什么会有tcp/ip 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别.就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样.计 ...

  4. TCP/IP学习笔记(3)-IP、ARP、RARP协议

    这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数据 ...

  5. TCP/IP学习笔记(3)----IP,ARP,RARP协议

    把这三个协议放到一起学习是因为这三个协议处于同一层(网络层协议),ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP ...

  6. TCP/IP学习笔记1--概述,分组交换协议

    1.TCP/IP 互联网是由许多独立发展的网络通信技术融合而成的,能够使它们不断融合并实现统一的正式TCP/IP技术,TCP/IP使通信协议的统称. TCP/IP协议模型(Transmission C ...

  7. TCP/IP学习笔记5--网络的构成要素

    人的灵魂来自一个完美的家园,那里没有任何污秽和丑陋,只有纯净和美丽.----大鱼海棠 1.通信媒介与数据链路 计算机之间通过各种电缆相互连接. 2.网卡 任何一台计算机接入网络都需要网卡,又称网络适配 ...

  8. TCP/IP学习笔记4--网络地址

    "他强由他强,清风拂山岗.他横由他横,明月照大江.世间诸事,敞开心扉,顺其自然." -- 张大千 地址具有两个特性: 1:唯一性 同一个通信网络中的任意两个通信主体不能具有相同的地 ...

  9. TCP/IP学习笔记7--TCP/IP模型通信例子学习

    "一位如蝴蝶般美丽的女子向我飞来,翩翩的舞姿如同云端轻盈的叶儿." -------------------------------------------------------- ...

随机推荐

  1. Bell数入门

    贝尔数 贝尔数是以埃里克·坦普尔·贝尔命名,是组合数学中的一组整数数列,开首是(OEIS的A000110数列): $$B_0 = 1, B_1 = 1, B_2 = 2, B_3 = 5, B_4 = ...

  2. How to change hostname on debian

    How to change hostname on Debian 10 Linux last updated July 13, 2019 in CategoriesDebian / Ubuntu, L ...

  3. js之大文件分段上传、断点续传

    文件夹上传:从前端到后端 文件上传是 Web 开发肯定会碰到的问题,而文件夹上传则更加难缠.网上关于文件夹上传的资料多集中在前端,缺少对于后端的关注,然后讲某个后端框架文件上传的文章又不会涉及文件夹. ...

  4. 1-开发共享版APP(源码介绍)-BUG修复

    这一系列文章将介绍APP的源码,这一节作为所有BUG问题修复! https://www.cnblogs.com/yangfengwu/category/1512162.html    //开发共享版A ...

  5. 打印出js对象里面的内容

    最近调试的时候遇到需要打印出js对象里面的内容,两种方式: 1.直接使用 JSON.stringify(obj) 方法把对象转成字符串,打印出来.但是因为维护的项目比较老,使用的还是ie11的ie5兼 ...

  6. C++ STL 知识小结

    qwq...接近联赛,就在这里对STL做一点知识小结吧,因为STL曾经失分很多. 简介 (来自Baidu) STL是Standard Template Library的简称,中文名标准模板库,惠普实验 ...

  7. Koa Session的使用

    Session 简单介绍 session 是另一种记录客户状态的机制,不同的是 Cookie 保存在客户端浏览器中,而 session 保存在服务器上. Session 的工作流程 当浏览器访问服务器 ...

  8. python selenium chrome 实现自动化登录

    1.环境安装 selenium的开发文档网址(英语好的可以直接看这个,写的很详细):http://selenium-python.readthedocs.io/ 因为实现的时候使用的是谷歌浏览器,在运 ...

  9. jmeter元件作用及执行顺序

    jmeter是一个开源的性能测试工具,它可以通过鼠标拖拽来随意改变元件之间的顺序以及元件的父子关系,那么随着它们的顺序和所在的域不同,它们在执行的时候,也会有很多不同. jmeter的test pla ...

  10. SQL Server 变量定义

    declare @id intdeclare @name char(10) --注意:char(10)为10位,要是位数小了会让数据出错set @id=1 set @name='sssss'selec ...