读完这个系列的第一篇浅谈TCP/IP协议栈(一)入门知识和第二篇浅谈TCP/IP协议栈(二)IP地址,在第一篇中,可能我对协议栈中这个栈的解释有问题,栈在数据结构中是一种先进后出的常见结构,而在整个TCP/IP协议中,在封装报文时就相当于是压栈操作,而在报文解析过程中,则是一个出栈的过程,在封装是最先被压进栈中的应用层协议,在解析报文时,也是最后从栈中读取出来并解析的。

这一节我们来讲网络层转发最为重要的设备-路由器,讲到路由器,大家可能并不陌生,每家每户现在应该都有路由器,你可能以为我会介绍像这样的路由器:

image

这种无线路由器,每家每户现在应该都有,毕竟有了它,才能有无线网用是不~,但事实上我要介绍的不是这种路由器,而是下面这种大家可能没见过,但对我们上网来说更为重要的路由器:

image

大家一定觉得很陌生,毕竟TP-LINK已经深入人心,而这些长得像冰箱或者箱子的东西也能和路由器挂上钩?实际上如果没有这些路由器,咱们也就没办法愉快地上网了,举个简单的例子,普通的无线路由器,能够承载的流量峰值大概是300M,而图片上这些大型路由器,每一个端口,最小的承载能力也能达到10G,而一台大型的路由器,像这样的端口没有数千,也有上百,所以说这样的设备显然不是为某个家庭服务的,甚至一个小区也不在话下,它可以承载的业务,至少是一个城市,甚至整个省,甚至一个小型的国家,也只需要几十台这样的设备,就可以满足大家的上网需求,因此这样的设备一般都是为运营商提供的,比如说电信,移动,联通之类。

之所以要介绍这样的大型路由器,只是为了让大家有这么一个概念,大致了解一下,因为后面涉及到的路由器,都是这样的路由器,大家只需要知道运营商用的是这样的大型路由器就OK了。

好了,言归正传,我们先看一下路由器的主要功能是什么:

路由器的主要功能是路由选择和报文转发,这种功能的实现需用到路由协议。

路由协议是路由器之间维护路由表的规则,用于发现路由,并生成相应的路由表,同时知道报文的转发。路由协议决定路由表中存放那些路由信息。

简单点说,路由器的功能就是两点:路由,转发。其中路由就是说经过路由器的报文,决定它的去向,当然仅仅知道报文去哪儿是不行的,路由器还需要将报文发送到相应的位置,这样才算完成一次报文的转发,通俗点说就是,路由器对收到的报文,会做两件事,其中一件是根据路由表(后面会介绍到,是路由转发最重要的表项),决定它的去处,紧接着第二件事就是将报文转发过去。

后面我们会陆续介绍网络层究竟是如何转发报文的,而这一节对路由器的介绍,算是一种铺垫,写得也比较简单,大家只需要知道,路由器要做路由和转发这两件事就OK了,至于它是如何做这两件事,后续我们会一一介绍,敬请期待!

浅谈TCP IP协议栈(三)路由器简介的更多相关文章

  1. 浅谈TCP IP协议栈(二)IP地址

    上一节大致了解TCP/IP协议栈是个啥东西,依旧是雾里看花的状态,有很多时候学一门新知识时,开头总是很急躁,无从下手,刚学会一点儿,却发现连点皮毛都不算,成就感太低,所以任何时候学习最重要的是要在合适 ...

  2. 浅谈TCP IP协议栈(一)入门知识【转】

    说来惭愧,打算写关于网络方面的知识很久了,结果到今天才正式动笔,好了,废话不多说,写一些自己能看懂的入门知识,对自己来说是一种知识的总结,也希望能帮到一些想了解网络知识的童鞋. 万事开头难,然后中间难 ...

  3. 浅谈TCP IP协议栈(四)IP协议解析

    通过之前的网络层基础知识,IP地址以及路由器的简介,大家应该对于TCP/IP有一个大致的了解,在脑海里应该对于网络的几个基础概念有个大概的了解,简单点说整个协议栈就是在做一件事,规定网络报文(网络传输 ...

  4. 浅谈TCP/IP网络编程中socket的行为

    我认为,想要熟练掌握Linux下的TCP/IP网络编程,至少有三个层面的知识需要熟悉: 1. TCP/IP协议(如连接的建立和终止.重传和确认.滑动窗口和拥塞控制等等) 2. Socket I/O系统 ...

  5. 测试那些事儿—浅谈TCP/IP协议

    TCP/IP协议是一系列网络协议的总和,是构成网络通信的核心骨架. TCP/IP的工作原理通俗的讲就是一个主机的数据要经过哪些过程才能发送到对方的主机上. TCP/IP协议采用四层结构,分别为应用层, ...

  6. 浅谈TCP/IP(new 常见面试问题)

    1. TCP/IP重传机制,如何保证消息读到一个完整内容再反序列化 2. TCP四次回收比三次握手多了什么操作,什么时候会进入Time_await状态 3.

  7. TCP/IP协议栈(三)——linux 向下的报文处理

    应用程序连接服务器时,目的地套接字地址(端口号和IP地址)以参数形式传递给系统调用connect(tcp_v4_connect()).下面逐步介绍初始化该连接 检查内核路由表,查找给定目的地IP地址路 ...

  8. 在深谈TCP/IP三步握手&四步挥手原理及衍生问题—长文解剖IP

    如果对网络工程基础不牢,建议通读<细说OSI七层协议模型及OSI参考模型中的数据封装过程?> 下面就是TCP/IP(Transmission Control Protoco/Interne ...

  9. 理解TCP/IP协议栈之HTTP2.0

    1 前言 前面写了10多篇关于Redis底层实现.工程架构.实际应用的文章,感兴趣的读者可以进行阅读,如有问题欢迎交流: 1.Redis面试热点之底层实现篇-12.Redis面试热点之底层实现篇-23 ...

随机推荐

  1. scala的reduce

    spark 中的 reduce 非常的好用,reduce 可以对 dataframe 中的元素进行计算.拼接等等.例如生成了一个 dataframe : //配置spark def getSparkS ...

  2. scala读取解析json文件

    import scala.util.parsing.json.JSON._ import scala.io.Source object ScalaJsonParse { def main(args: ...

  3. 采坑:python base64

    需求:  读取文本内容,对字符串进行base64加密 >>> str = 'aaaaaaaaaaaaaaaaaaa\nbbbbbbbbbbbbbbbbbbbbbbbbbbb\nccc ...

  4. Solr 03 - Solr的模式设计与优化 - 最详细的schema.xml模式文件解读

    目录 1 关于schema.xml文件 2 解读schema.xml文件 2.1 field - 配置域 2.2 fieldType - 配置域类型 2.3 copyField - 配置复制域 2.4 ...

  5. Chapter 5 Blood Type——24

    "She's just a little faint," he reassured the startled nurse. "They're blood typing i ...

  6. 【WCF系列】(四)WCF客户端怎么消费服务

    WCF客户端怎么消费服务 获取服务绑定协议.绑定和地址:实现方式 SvcUtil方式:SvcUtil.exe是一个命令行工具,位于:C:\Program Files (x86)\Microsoft S ...

  7. 详解什么是平衡二叉树(AVL)(修订补充版)

    详解什么是平衡二叉树(AVL)(修订补充版) 前言 Wiki:在计算机科学中,AVL树是最早被发明的自平衡二叉查找树.在AVL树中,任一节点对应的两棵子树的最大高度差为1,因此它也被称为高度平衡树.查 ...

  8. 【.NET Core项目实战-统一认证平台】第十一章 授权篇-密码授权模式

    [.NET Core项目实战-统一认证平台]开篇及目录索引 上篇文章介绍了基于Ids4客户端授权的原理及如何实现自定义的客户端授权,并配合网关实现了统一的授权异常返回值和权限配置等相关功能,本篇将介绍 ...

  9. webpack4.0各个击破(4)—— Javascript & splitChunk

    目录 一. Js模块化开发 二. Js文件的一般打包需求 三. 使用webpack处理js文件 3.1 使用babel转换ES6+语法 3.2 脚本合并 3.3 公共模块识别 3.4 代码分割 3.5 ...

  10. 修复UEFI模式下Manjaro Linux启动问题

    上周在更新Manjaro Linux的时候误触了电源键,导致内核更新了一半系统强制关机,重启时正常进入grub但无法正常引导进入系统. 由于不想重装系统(一大堆环境和工具的配置还是相当繁琐的),加上初 ...