《图解TCP/IP》读书笔记

简介

因为ISO七层模型既复杂又不实用,所以现在应用最广泛的其实是我们平时经常听到的TCP/IP协议,它就是一个四层协议的协议族,只不过因为TCP/IP是其中最核心的协议,所以平时统称为TCP/IP协议,其实这个协议族里面还有其他协议,比如HTTP、FTP、SMTP等;此外本篇文章还粗略归纳了一下TCP协议的“三次握手和四次挥手”,UDP协议的特点以及它同TCP协议的不同之处,IP地址协议以及路由协议。

一、TCP分层框架

下图是TCP/IP四层协议族与ISO七层模型的一个分层框架对比图,从上往下依次是应用层、会话层、表示层、传输层、网络层、数据链路层、物理层。

假如我想在机器A上,发送一条"Hello World"到机器B,这个通讯过程是个什么样子呢?

首先机器A的应用层将消息内容"Hello World"打包,然后经由传输层加上双方的端口号,网络层加上双方的IP地址,链路层加上双方的Mac地址,经过多个路由器和网关,最终到达机器B,然后机器B再反过来解析出消息内容"Hello World"

简化之后的路径就是:消息实体+端口号+IP地址+Mac地址,封装发送,收到消息后,再反过来解包操作

下面我们从上往下,依次介绍各个分层的作用:

应用层:

应用层是OSI参考模型的最高层,它是确定应用进程之间的通信性质以满足用户需要、负责用户信息的语义表示并在两个通信者间进行语义匹配的

比如SMTP协议,虽然不同公司的邮箱格式不尽相同,但是都可以解析对方发来的邮件内容,就是因为他们都遵循SMTP协议。

表示层

表示层主要是上层用户解决用户信息的语法表示问题,其主要功能是完成数据转换、数据压缩及加密。

会话层:

它虽然不参与具体的数据传输,但它却对数据传输进行管理,会话层建立在两个互相通信的应用进程之间,进行数据交互的组织协调。

传输层:

传输层是网络体系结构中的中高低层间的衔接的接口,主要负责处理数据报文错误和数据包的发送接收次序等传输问题。它可以决定数据要传输到远程机器的哪个程序(端口),同时要表明数据来自源机器的哪个程序(端口),实现端口之间的通讯。

比如本地跑一个测试程序A,监听的是80端口;远程跑的测试程序B,监听的是8080端口;

那么传输层就会把本机的80端口和远程的80端口都加到数据包上;

这样远程机器解析数据时,就知道要把数据传给哪个程序。

网络层:

网络层传输的数据单位是分组或被称为“Packet”的数据包,它通过路由选择算法为网络分组选择最佳路径,从而实现拥塞控制和网络互联等功能。其实主要就是为了防止网络跟公共交通似的发生拥堵,在传输过程中万一发生数据块丢失的话,可以有迹可循,重新连接和补发送。可指定双方的IP地址,并进行路由的寻址和转发。这里要明白一点就是,远程机器的IP地址不是一次跳转就可以到达的,要通过路由器和网关的多次跳转,才会到达。

数据链路层

在各通信实体间建立数据链路联接,通过网桥和交换机来传输以“帧”为单位的数据流,它主要功能是为上层的网络层提供容错控制和流量控制服务。它可以指定远程机器的Mac地址(确保不会发错地方),以及本机的Mac地址。

既然有了Mac地址来作为机器的唯一ID,为啥还要有网络层的IP地

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值