这里所说的是广义上的TCP/IP协议群,而不是特指TCP和IP这两种具体的协议。既然是协议群,那么都有哪些协议呢?我们先不着急回答这个问题,因为要弄清楚这个问题,首先得了解另两件事,就是为啥要有这个协议群,这个协议群大概是啥样的。

  先说第一件,起因很简单,这也是web产生的源头,就是计算机与计算机之间的联接。为啥计算机要互联呢?因为要交换数据,共享信息。当然,你也可以说我直接把数据传到U盘或者移动硬盘,接入到另一台计算机去不就完事了吗,那样我也无话可说了。计算机之间的互联互通要解决很多问题,首先是不同厂商生产的不同计算机型号、不同操作系统、不同网卡等等异构的软硬件如何兼容的问题。解决的办法就是制定规范,大家都按这个规范来,那么就能玩到一起了。

  规范的制定就产生了协议。举个例子,我说潮汕话,你说粤语,那就是鸡同鸭讲,如果大家都说普通话,那就能聊天了。这里的普通话就是协议。很多的协议,通过这些协议来实现计算机之间的通信,我们统称它们为TCP/IP协议群。这么多协议,管理办法就是分层。ISO(国际标准化组织,International Organization for Standardization)制定了OSI(开放系统互连参考模型,Open System Interconnect)参考模型,分层就是按这个OSI参考模型来的,共7层,从底层往上分别是:物理层 -> 数据链路层 -> 网络层 -> 传输层 -> 会话层 -> 表示层 -> 应用层。我们的TCP/IP把会话、表示和应用这3层整合起来了,一般分的是4层(链路层 -> 网络层 -> 传输层 -> 应用层)或5层(物理层 -> 数据链路层 -> 网络层 -> 传输层 -> 应用层)。

  我们详细看下OSI的七层参考模型(也叫7层通讯模型)分别都在做什么事情:

  1、物理层:

  定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。物理层即底层硬件,通讯最终是靠物理的传输介质实现的,物理层将数据的0/1转换为电压和脉冲光传输给物理传输介质(双绞线、同轴电缆和光纤等),所以物理层传输的是比特流。 

  2、数据链路层:

  通过物理的传输介质实现数据的传输。相互直连的设备使用地址实现传输,这个地址叫MAC(MAC,Media Access Control,介质访问控制)地址,或者叫物理地址、硬件地址。这一层传送的时候会把网络层带来的MAC地址作为首部,方便传输介质识别传输目的地址。网络层的数据在这里会被分段,实现每一个区间(收发主机之间还存在众多主机)内的通讯。交换机利用MAC地址来确定转发地址,归到该层。物理层的比特流则转换为数据帧。

  3、网络层:

  在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择。负责将数据包从发送端主机传输到目标主机,进行地址管理和路由的选择。可以把网络层看成端到端的数据传输,它负责把完整的数据包从A主机送达B主机,就像寄快递一样。至于中间如何中转、拆包,那是数据链路层的事。该层的协议包括IP(Internet Protocol)、ARP(Address Resolution Protocol,地址解析协议)和ICMP(Internet Control Message Protocol,Internet控制报文协议)等。IP用来识别TCP/IP网络中不同的主机或路由器,IP地址属于网络层。路由器利用IP来确定转发地址,所以也属于这一层。  

  4、传输层:

  管理两个节点之间的数据传输(无需在路由器上处理)。负责从逻辑上建立两个主机之间的通讯连接,为确保数据包正确送达目的地,对发送端主机和目标主机之间进行确认,若数据丢失,会进行重发。协议包括TCP(Transmission Control Protocol,传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据,数据单元叫段)、UDP(User Datagram Protocol,用户数据报协议,与TCP特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,数据单元叫数据报)等。端口用于区分同一个计算机中不同的应用程序,属于传输层。   

  5、会话层:

  负责建立和断开通讯连接,以及报文传输管理(如访问控制,会话管理)。对何时连接,以何种方式(多个连接或单个连接)连接,连接多久,何时断开等做记录。   

  6、表示层:

  将应用处理的信息转换为适合网络传输的格式,或将下层的数据转换为适合上层处理的格式。将设备固有的数据格式,转换为网络标准传输格式,因为不同设备对同一比特流解释的结果可能不同。如报文的压缩、加密,字符的utf-8编码(编码格式加入首部传给下一层)。   

  7、应用层:

  为用户的应用程序(例如电子邮件、文件传输和终端仿真)提供网络服务,实现具体业务逻辑。包括电子邮件协议(如SMPT)、文件传输协议(FTP)、远程登录协议(Telnet)、超文本传输协议(HTTP)等。每一种不同的应用对应不同的协议。

  从上面我们看到了TCP\IP的一个大概的结构,每一层对应着不同的协议群。会话层、表示层和应用层都属于应用程序,网络层和传输层都属于操作系统,而物理层和数据链路层则属于设备驱动程序与网络接口的范畴。

TCP/IP概念简述的更多相关文章

  1. Http,Socket,TCP/IP 协议简述

    Http,Socket,TCP/IP 协议简述:https://blog.csdn.net/gordohu/article/details/54097841 TCP/IP协议,HTTP协议与webSo ...

  2. TCP/IP原理简述

    TCP/IP与OSI TCP/IP工作在第4层,在TCP/IP协议簇中,有两个不同的传输协议:TCP(传输控制协议)和UDP(用户数据报协议),它们分别承载不同的应用.TCP协议提供可靠的服务,UDP ...

  3. TCP/IP协议 socket

    TCP/IP四层协议 TCP/IP概念 tcp/ip协议是主机接入互联网以及接入互联网的两台主机通信的标准. 数据帧概念 数据帧 |-- 包头 | |--源地址 | |--目标地址 | |--数据类型 ...

  4. 登录授权、TCP/IP、HTTPS

    今天继续纯理论的东东,比较枯燥,但是又很重要,坚持.. 登录和授权 登录和授权的区别: 登录:身份认证,即确认「你是你」的过程. 授权:由身份或持有的令牌确认享有某些权限(例如获取用户信息).登录过程 ...

  5. TCP/IP网络知识

    1.TCP/IP概念 TCP/IP不是单指一种传输协议,而是一组传输控制协议/互联网协议. 2.TCP/IP分层 (计算机网络中,实际应用的网络协议是TCP/IP协议族,TCP/IP的应用层大体上对应 ...

  6. 网络中的 TCP/IP

    TCP/IP OSI的“实现”:TCP/IP OSI七层模型 TCP/IP概念层模型 功能 TCP/IP协议族 应用层 应用层 文件传输.电子邮件.文件服务.虚拟终端 FTP,HTTP,SMTP,SN ...

  7. TCP/IP简述

    一.TCP/IP简述 TCP/IP从字面异议看起来是指TCP和IP两种协议,实际上,它只是利用IP进行通信时必须用到的协议群的统称.具体的来说,IP或ICMP.TCP或UDP.Telnet或FTP.以 ...

  8. TCP/IP基础概念及通信过程举例

    TCP/IP基础概念及通信过程举例 出现 上个世纪60年代,由于中央集中式网络的容灾性较弱,以美国国防部为中心的一家组织研究出分组交换网络.后来为了验证分组交换技术的实用性,ARPANET出现了,并且 ...

  9. TCP/IP协议工作原理简述

    TCP/IP协议工作原理简述 // */ // ]]>   TCP/IP协议工作原理简述 Table of Contents 1 概要 2 应用层 3 传输层 4 网络层 5 链路层 1 概要 ...

随机推荐

  1. Android面试三之Service

    Service是什么 Service(服务)是一个没有用户界面的在后台运行执行耗时操作的应用组件.其他应用组件能够启动Service,并且当用户切换到另外的应用场景,Service将持续在后台运行.另 ...

  2. 个人知识管理系统Version1.0开发记录(03)

    demo  设 计 一个知识点demo,在数据库和用户界面的互动事件.分三个层次,数据存储,数据方法工具,数据呈现界面.这一次先完成数据存储,按以下逻辑实现.工具:eclipse,oracle数据库, ...

  3. IOS-Quartz2D(Paths元素)

    Paths中的几个重要元素 Points void CGContextMoveToPoint (    CGContextRef c,    CGFloat x,    CGFloat y ); 指定 ...

  4. vue项目使用hbuilder打包后,真机测试白屏

    在命令行直接运行 npm run build后,生成的dist文件中,直接打开index.html文件 Tip: built files are meant to be served over an ...

  5. webstrom 配置eslint 自动修复错误

    1.展示效果 如何给vue项目添加eslint呢,如何自动修复呢? 先展示一下效果: 2.配置步骤 1.安装插件ESLint plugin webstrom 其实有个非常好用的插件,ESLint pl ...

  6. SpringAnnotation注解之@Resource

    @Resource:同样也是注入,默认是按byName,byName找不到的话按byType 1 2 3 4 @Resource public void setUserDao(UserDao user ...

  7. PHP for循环的写法和示例

    For循环是最近的循环语句之一,无论哪种语言,都有这个循环语句,也是我们工作中常用的循环方法. 语法规则: for (expr1; expr2; expr3){ 要执行的代码 } expr1:表示循环 ...

  8. node 适合 5000 人同时在线左右的 游戏开发

    游戏开发性能的一些讨论 上面这个问题是在游戏上线前的一个性能顾虑 (但他确实是node多进程通讯间的一个比较麻烦的问题,数据一大就会出现性能上的瓶颈) 我们项目(手游)已经上线了,单服最高同时在线4. ...

  9. Android程序员学WEB前端(5)-HTML(5)-框架集-Sublime

    转载请注明出处:http://blog.csdn.net/iwanghang/article/details/76576279 觉得博文有用,请点赞,请评论,请关注,谢谢!~ 框架集: index7. ...

  10. Service的启动过程分析

    转载请注明出处:http://blog.csdn.net/crazy1235/article/details/76039510