(建议在学习本篇知识时先阅读我关于OSI的文章)

在上一篇文章中,我们详细介绍了OSI模型,对每一层的功能和作用都做了解释说明.在文章的最后也说到,OSI是一个理想化的模型,因为在设计之初未能考虑到实际应用的成本问题,所以只实现了自下而上的五层功能,并没有大规模使用。于是经过科研人员的研究,一个新的模型被广泛应用——TCP/IP协议(互联网协议)。那么相较于之前的OSI模型,TCP/IP做了哪些改动,是怎么工作的,又有哪些优势呢?我会绕过一些复杂的协议说明,如TCP如何进行ip地址转换,ICMP,广播等等,将最关键的地方着重说明。

TCP/IP模型

TCP/IP协议实际上是一个协议簇,包括TCP和ip。在讲TCP/IP之前,我们需要明白什么叫做通信协议,为了减少网络设计的复杂性,大多数网络都采用分层结构。对于不同的网络,层的数量、名字、内容和功能都不尽相同。在相同的网络中,一台机器上的第N层与另一台机器上的第N层可利用第N层协议进行通信。协议就是规定双方关于如何进行通信所达成的一致的规则。

为了加强理解,我们把OSI模型和TCP/IP放在一起比较学习:

TCP/I[模型对OSI做了简化处理

可以看到,TCP/ip协议将上层协议简化,统称应用层。这样做的好处是大大减少维护上层所需要的成本。下四层基本不变,具体功能和在上篇中已有详细说明,此处再不赘述。

TCP/IP协议由传输层的TCP协议和网络层的IP协议所构成,要想了解该模型的结构,我们需要对TCP和IP协议有了解

TCP协议:TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要拆除连接(四次挥手),由于TCP是面向连接的所以只能用于端到端的通讯提供的是一种可靠的数据流服务,采用“带重传的肯定确认”技术来实现传输的可靠性。TCP还采用一种称为“滑动窗口”的方式进行流量控制,所谓窗口实际表示接收能力,用以限制发送方的发送速度。

三次握手是TCP的灵魂

关键词:可靠,面向连接,三次握手,四次挥手,提供错误处理(重发确认机制)

既然提到了TCP,必须提到另一个十分重要的传输协议——UDP。

UDP协议:面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。

关键词:面向无连接,不可靠,不提供错误处理,优点是速度快。

下面我们来着重说明一下IP协议:目前ip版本有IPV4和IPV6,由于IPV6并未大量使用,我们只针对IPv4来讲解。

首先来介绍一下MAC地址,每一台设备都有自己唯一的MAC地址,不可更改,不会重复,用来标志自身位置。

大家都听过IP地址这个词,IP地址是指互联网协议地址,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,不同的用户在不同的时间段可能使用同一个IP地址。

IPV4被分为五大类:ABCDE

A类为:点分四组中的第一组地址范围为0~127的IP地址。已二进制来看就是“首位为0”

B类:128~191.二进制首位为10

C类:192~223.二进制首位为110

D类:224~239.二进制首位为1110

E类:240~255.二进制首位为1111

不同类的IP地址用法也不同,这里我们不做具体讨论,此外还有超网技术(CIDR),我会在以后的文章中将两者放在一起讲解。

不是所有的地址都可以给用户使用,有些地址是特定的,比如127.0.0.0,这是回环地址,用来检测本地网络是否可以ping通;E类地址是留作做研究,也不能给用户使用。

IP协议工作过程比较复杂,简而言之有两大作用,具体为:

1.寻址与路由: (a)用IP地址来标识Internet的主机:在每个IP数据报中,都会携带源IP地址和目IP地址来标识该IP数据报的源和目的主机。IP数据报在传输过程中,每个中间节点(IP 网关)还需要为其选择从源主机到目的主机的合适的转发路径(即路由)。IP协议可以根据路由选择协议提供的路由信息对IP数据报进行转发,直至抵达目的主机。

(b)IP地址和MAC地址的匹配,ARP协议。数据链路层使用MAC地址来发送数据帧,因此在实际发送IP报文时,还需要进行IP地址和MAC地址的匹配,由TCP/IP协议簇中的ARP(地址解析协议)完成。

2.分段与重组。 (a) IP数据报通过不同类型的通信网络发送,IP数据报的大小会受到这些网络所规定的最大传输单元(MTU)的限制。

相比介绍到这里,大家对TCP/IP协议也有了一定的了解,但是,他具体的执行流程是怎么样,使用了那些协议?这些协议的作用又是什么呢?这些知识涉及到的知识点非常多,我会在日后的文章中为大家一一说明。



协议地址结构_通信之路——用最简洁的文字告诉你互联网协议TCP/IP相关推荐

  1. 协议地址结构_TCP/IP 协议 讲解

    计算机网络体系结构分层 太厉害了,终于有人能把TCP/IP 协议讲的明明白白了 计算机网络体系结构分层 不难看出,TCP/IP 与 OSI 在分层模块上稍有区别.OSI 参考模型注重"通信协 ...

  2. 互联网通信安全TCP/IP协议

    介绍TCP/IP协议 TCP/IP IP协议详解 https://blog.csdn.net/qq_42058590/article/details/82918678 IP: Internet Pro ...

  3. UNIX网络编程读书笔记:套接口地址结构

    前言 大多数套接口函数都需要一个指向套接口地址结构的指针作为参数.每个协议族都定义它自己的套接口地址结构.这些结构的名字均以"sockaddr_"开头,并以对应每个协议族的唯一后缀 ...

  4. tcp协议的主要功能是什么_前端要知道的网络知识一:TCP/IP 协议到底在讲什么...

    你之所以不知道那套书在讲什么,是因为你还没有认识到网络协议有什么用,怎么用,以什么形式在使用,网络协议的概念很简单,就几句话,你只知道网络协议的概念,只知道很多大神都推荐这套书,都强调网络协议的重要性 ...

  5. TCP/IP协议--ARP协议(有了IP地址为什么还需要ARP协议)

    首先我们需要先大致了解一下MAC地址,MAC(Media Access Control, 介质访问控制)地址是烧录在Network Interface Card(网卡,NIC)里的,也叫硬件地址,是由 ...

  6. cisco 模拟器安装及交换机的基本配置实验心得_看完这份1113页的TCP/IP协议+路由与交换机,成功上岸字节跳动...

    TCP是一个巨复杂的协议,因为它要解决很多问题,而这些问题又带出了很多子问题和阴暗面.所以学习TCP本身是个比较痛苦的过程,但对于学习的过程却能让人有很多收获. 之所以想写这篇文章,目的有三个: 一个 ...

  7. c#基于TCP/IP、CIP协议的欧姆龙PLC通信

    一.关于CIP协议 CIP通信是Common Industrial Protocl(CIP)的简称,它是一个点到点的面向对象协议,能够实现工业器件(传感器,执行器)之间的连接,和高等级的控制器之间的连 ...

  8. 计算机通识之TCP/IP协议簇(二)

    TCP/IP协议簇 目录 1.子网划分 1.1子网划分概念 1.2 子网划分步骤 1.3 子网划分案例 2.IPv4 3.IPv6 4.OSI七层模型 4.1 OSI七层模型 4.2 TCP/IP五层 ...

  9. OSI七层协议和Tcp/IP五层协议,路由器交换机和HUB的区别

    在网络历史的早期,国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)共同出版了开放系统互联的七层参考模型.一台计算机操作系统中 的网络过程包括从应用请求(在协议栈的顶部)到网络介质(底部) ...

最新文章

  1. python数据写入CSV
  2. 手工计算深度学习模型中的参数数量
  3. Flutter学习目录
  4. opencv改变imshow窗口大小,窗口位置,ROI
  5. 公众号出现该公众号提供的服务出现故障分析
  6. 高级软件工程第一次作业--准备
  7. 出差在外,无法随时随地查看报表?那是因为你还不知道移动端报表
  8. 图象:sine(正弦)、cosine(余弦)与Tangent(正切)
  9. Oracle数据库有用函数
  10. 无效内卷正在毁掉年轻一代程序员
  11. github打开前端样式丢失_微信小程序入门教程之二:页面样式
  12. 博文视点读书节第九日丨大咖书单加倍放送!
  13. 基于C++11实现线程池的工作原理
  14. 03-SSH server config
  15. 计算机系统应用 莫军,ARINC653分区操作系统多核处理器任务调度设计
  16. 工业通讯总线RS485和RS232
  17. ANSYS Products19.1下载及安装教程
  18. Paddlenlp之UIE分类模型【以情感倾向分析新闻分类为例】含智能标注方案)
  19. 开放平台(接口)开发-1-天气API接口大全
  20. 专访CAPA梁振宇:信息无障碍是互联网产品的必选项

热门文章

  1. linux shell ls xargs rm 组合删除文件
  2. mysql timestamp类型字段 自动更新为当前时间
  3. linux gcc make cmake 三工具的关系
  4. linux c 内存分配函数
  5. windbg设断点命令详解(bp, bu, bm, ba 以及bl, bc, bd, be)
  6. VS与Win7 共舞:用户界面特权隔离
  7. Linux内核探讨-- 第一章
  8. error: Upgrade DB using Essex release first.
  9. mysql mapper foreach_springboot结合MyBatis中使用foreach
  10. 访问外部扩展C语言编程,单片机C语言编程(系统扩展IC)8.ppt