第12章 网络基础(1)_网络分层和TCP/IP协议族
1. 协议的概念
(1)计算机网络中实现通信必须有一些约定。如对速率、传输代码、代码结构、传输控制步骤和出错控制等约定,这些约定即被称为通信协议
(2)在两个节点之间要成功地进行通信,两个节点之间必须约定使用共同的“语言”,这些被通信各方共同遵守的约定、语言、规则被称为协议
(3)在Internet中,最为通用的网络协议是TCP/IP协议。
2. 网络分层模型
(1)应用层:提供用户接口,特指能够发起网络通信的应用程序,如客户端程序、QQ、MSN、浏览器等,服务器程序有Web服务器、邮件服务器、流媒体服务器等。
(2)表示层:使用何种编码方式。比如要传输的数据使用ASCII编码、Unicode编码还是二进制文件,是否要加密和压缩。发送端和接收端程序必须使用相同的编码方式,才能正确显示,否则就产生乱码。
(3)会话层:通信的应用程序之间建立、给维护和释放面向用户的连接。通信的应用程序之间建立会话,需要传输层建立1个或多个连接。
(4)传输层:负责在通信的两个计算机之间建立连接,实现可靠或不可靠的数据通信,能够实现发送端和接收端的丢包重传,流量控制。
(5)网络层:路由器查看数据包目标IP地址,根据路由表为数据包选择路径。路由表中的条目可以人工添加(静态路由),也可以动态生成(动态路由)
(6)数据链路层:不同的网络类型,发送数据的机制不同,数据链路层就是将数据包封装成能够在不同网络传输的帧,能够进行差错检查。但不纠错,检测出错误丢掉该帧。
(7)物理层:该层规定了网络设备接口标准、电压标准。尽可能地通过频分复用、时分复用技术在通信链路上更快的传输数据。
3. TCP/IP协议族
(1)TCP/IP实际是一个一起工作的通信家族,为网际数据通信提供通路。
(2)TCP/IP协议族大体上分为三个部分
①Internet协议(IP):
②传输控制协议(TCP)和用户数据报文协议(UDP)
③处理TCP和UDP之上的一组协议专门开发的应用程序。它们包括:远程登录(telnet)、文件传送协议(ftp)、域名服务(dns)和简单的邮件传送程序(smtp)等许多协议。
(3)网络层协议
①internet协议(IP):该协议设计成互联分组交换通信,以形成一个网际通信环境,它负责在源主机和目的主机之间传输来自较高层次软件的秋为数据报文的数据块,它在源和目标之间提供非连接型传递服务。
②网际控制报文协议(ICMP):icmp实际上并不是IP层部分,但直接同IP层一起工作,报告网络上的某些出错情况,允许网际路由器传输差错信息或测试报文。
③地址识别协议(ARP):实际上也不是网络层的部分,它处于IP和数据链路层之间,它是在32位IP地址和48位局域网物理地址之间执行翻译的协议。
(4)传输层协议
①传输控制协议(TCP):可靠的、面向连接的传输层服务,主要功能有:监听输入对话建立请求、请求别一网络站点对话、可靠的发送和接收数据和适度的关闭对话等。
②用户数据报文协议(UDP):提供不可靠的、非连接型传输层服务。它允许在源和目标主机之间传递数据而不必在传递数据之前建立对话。同时也不提供TCP使用的端对端差错校验功能。主要用于那些非连接型的应用。如名字服务、网络管理、视频点播和网络会议等。
(5)应用层协议
①Telnet:远程登录 ②FTP和TFTP:文件传送协议;
③SMTP:简单文件传送协议 ④DNS:域名服务
第12章 网络基础(1)_网络分层和TCP/IP协议族的更多相关文章
- 网络基础篇(一)--TCP/IP协议族
TCP/IP协议族是一个分层,多协议通信体系. 1 TCP/IP协议族体系结构 TCP/IP协议族自底而上分为四层: 数据链路层, 网络层, 传输层和应用层. 1.1 数据链路层 实现网卡接口的网络驱 ...
- Android网络编程系列 一 TCP/IP协议族
在学习和使用Android网路编程时,我们接触的仅仅是上层协议和接口如Apache的httpclient或者Android自带的httpURlconnection等等.对于这些接口的底层实现我们也有必 ...
- 第一章 了解TCP/IP协议族
第一章 了解TCP/IP协议族 1.1 TCP/IP协议族体系结构以及主要协议 IP和TCP协议对编写程序具有最直接的影响,后面的章节会详细的讲到. TCP/IP的体系结构有应用层,传输层,网络层,数 ...
- 重识TCP/IP协议族与HTTP基础
不忘初心 砥砺前行, Tomorrow Is Another Day ! 本文概要: TCP/IP协议族的网络分层 TCP三次握手四次挥手 Http简介 报文结构 Http的请求方法及状态码 常用的H ...
- 网络编程基础之C/S架构和TCP/IP协议
一.何谓C/S架构 C指的是client(客户端软件),S指的是Server(服务端软件),既然我们的的标题是网络编程基础, 那我们就一起来学习怎样写一个C/S架构的软件,实现服务端与客户端软件基于网 ...
- Android网络编程系列 一 TCP/IP协议族之网际层
这篇借鉴的文章主要是用于后续文章知识点的扩散,在此特作备份和扩散学习交流. 网际层包括:IP.ICMP.IGMP 以及处在网际层实际工作在链路层的 ARP 和 RARP等等协议. 1.IP协议 互联网 ...
- Android网络编程系列 一 TCP/IP协议族之链路层
这篇借鉴的文章主要是用于后续文章知识点的扩散,在此特作备份和扩散学习交流. 数据链路层有三个目的: 为IP模块发送和 接收IP数据报. 为ARP模块发送ARP请求和接收ARP应答. 为RARP发送RA ...
- Tcp/Ip协议族简单解读及网络数据包/报/帧数据格式及封装及解包;
http://www.creseek.cn/products-install/install_on_bsd_linux/ 中文检索 离线cloudera ecosystem components: h ...
- Android网络编程系列 一 TCP/IP协议族之传输层
这篇借鉴的文章主要是用于后续文章知识点的扩散,在此特作备份和扩散学习交流. 传输层中有TCP协议与UDP协议. 1.UDP介绍 UDP是传输层协议,和TCP协议处于一个分层中,但是与TCP协议不同,U ...
随机推荐
- ThinkPHP CodeIgniter URL访问举例
ThinkPHP URL访问: http://localhost/think/index.php/Home/login/func/[name/syt/password/123/] ht ...
- 如何更改/删除magento首页产品/广告图片等模块信息
如何更改/删除magento首页产品/广告图片等模块信息,如果只是修改一些简单的地方,例如已经存在 的左右栏目里面的图片内容等,是很简单的,直接在后台就可以修改的,具体如下: 如何删除magento首 ...
- 如何查看linux命令行操作的历史记录-linux
前言 由于刚开始学习linux,对命令行不熟悉,可以查看使用过的命令行历史记录,熟悉命令行并熟练操作,对命令行进行深入地理解. 系统环境 OS:ubuntu16.04. 操作过程 在主文件夹目录即ho ...
- pymysql中如何将动态的插入数据库中
data = { ', 'name': 'zengsf', 'age': 20 } table = 'students' #获取到一个以键且为逗号分隔的字符串,返回一个字符串 keys = ', '. ...
- 如何创建一个基于 .NET Core 3 的 WPF 项目
在 Connect(); 2018 大会上,微软发布了 .NET Core 3 Preview,以及基于 .NET Core 3 的 WPF:同时还发布了 Visual Studio 2019 预览版 ...
- jQuery事件绑定汇总(包括一些无法获取事件的问题)
★ $(document).on('click', 'button[name=closeLayerOut2]', function () { ...... }); $(document).on('cl ...
- .gitignore忽略git版本库中的文件(夹)
# 忽略*.o和*.a文件 *.[oa] # 忽略*.b和*.B文件,my.b除外 *.[bB] !my.b # 忽略dbg文件和dbg目录 dbg # 只忽略dbg目录,不忽略dbg文件 dbg/ ...
- jaeger 使用ElasticSearch 作为后端存储
jaeger 支持es 作为后端存储,这样对于查询.以及系统扩展是比较方便的 使用docker-compose 运行 环境准备 参考项目: https://github.com/rongfenglia ...
- golang 自定义importpath
golang 的包导入和其他语言有好多不一样的地方,以下是一个自定义的导入 golang 自定义导入说明 一个官方的说明 比较简单,就不翻译了,主要是说我们可以通过添加meta 数据告诉包如何进行加载 ...
- 理解git
为了真正了解git,我们从底部.底层开始,了解git核心,知其然并知其所以然. 为什么要进行版本控制呢? 因为编写文件不可能一次到位,文件总是有不同的状态需要保存下来,方便以后出错回滚. git 是目 ...