TCPIP网络基础知识
1、OSI七层模型及数据传输过程
物理层
解决问题:实现两台机器互联,机器和机器之间是怎么通信?
1.两台机器互联的物理链路,物理介质。网线(双绞线)光纤、无线电波---基本连接
2.存在形式:01001二进制形式存在,电信号、比特流
数据链路层
解决问题:01010比特流其实是没有什么意思的数据,变成有意义的数据呢?确认这个数据是发给我的呢?
比特流进行处理:分组。8位为一组,一个字节,依次按顺序发送数据。
数据格式:帧
定义发送地址,MAC地址---网卡--身份证,唯一的。寄件人地址(源MAC地址)----收件人地址(目的MAC地址)
网络层
解决问题:主机A-B-C-D-E--主机F??路径很多条,怎么选择最优路?要怎么知道对方的MAC地址?
怎么知道对方的MAC地址? ---ARP协议(address resolution Protocol),通过IP地址知晓MAC地址
判断是否在同一个子网,怎么判断?---IP协议
路径很多,怎么选择最优路径?---一组协议 路由协议,动态路由协议(RIP,OSPF,BGP)。
数据格式:数据包
传输层
解决问题:发送数据多,数据包很大需要很长时间??中间网络中断,重传??数据包是否完整的,正确的?
对发送的数据进行封装---TCP协议,UDP协议,使数据包一个一个按顺序依次发送
两个应用通信(qq--qq),怎么判断是用qq来回应的呢,而不是其他应用程序呢,-----定义端口的概念,通过端口寻找对应的程序,对应的进行数据处理。
会话层
解决问题:断点续传功能
可以从校验点继续恢复数据进行重传,适用大文件
自动收发,自动寻址的功能
表示层
解决问题:操作系统win mac linux 语法不一样,不同系统之间进行通信
翻译工作,提供一种公共语言,通信。
应用层
解决问题:字节流格式,不好识别,不好操作。
定义了各种应用协议,规范数据格式: HTTP协议,HTTPs协议,FTP协议,DNS协议,TFTP,SMTP协议等等
四层和七层对比
数据链路层也叫网络接口层
TCP/IP四层协议比较常用
数据传输过程
2、网络层协议重点协议--ARP IP 路由协议
ARP协议
ARP协议概念
地址解析协议,实现通过对方的IP地址(域名)寻找对方的MAC地址
ARP工作流程
想象成
主机A首先查看自己的ARP表,如果找到了主机B的MAC地址,则直接对IP数据包进行帧封装,发送给主机B。
如果主机A在ARP表里面没有找到主机B的MAC地址,则将缓存改数据报文,然后以广播的方式发送一个ARP请求报文。ARP请求报文中带上源IP地址和源MAC地址(主机A),目标IP地址和目标MAC地址为主机B的IP地址和全0的MAC地址。广播,该网段上的所有主机都可以接收到该请求,但是只有被请求的主机(即主机B)会对该请求进行处理。
主机B比较自己的IP地址和ARP请求报文中的目标IP地址,当两者相同时进行如下处理:将ARP请求报文中的发送端(即主机A)的IP地址和MAC地址存入自己的ARP表中。之后以单播方式发送ARP响应报文给主机A,其中包含了自己的MAC地址。
主机A收到ARP响应报文后,将主机B的MAC地址加入到自己的ARP表中以用于后续报文的转发,同时将IP数据包进行封装后发送出去。
ARP表查询
命令:arp -a
动态: ARP协议学习存储的
静态: 本地配置的
IP协议
解决问题:判断两台主机是否在一个局域网内,是否可以通信
IP协议概念
IP(Internet proto):分配给用户上网使用网络协议的设备的数字标签,分为两大类: IPV4 和IPV6
IPV4:32位,表示方式:二进制: 十进制:192.168.1.1
路由协议
概念
一组协议,指定数据包转发方式的网上协议。
静态路由: 目的地址----指定下一跳(有谁去帮你去转发)----默认路由(0.0.0.0 0.0.0.0---匹配所有,主机--默认网关)
0.0.0.0 0.0.0.0---匹配所有: 无论是访问百度,还是京东,都是经过默认网关转发出去
默认网关的概念: 主机发送的消息都会发给默认网关的主机,这个主机决定怎么广播处理消息
动态路由协议(RIP(v1 v2), OSPF, BGP)配置网络拓扑,配置之后,动态学习路由条目,学习形成路由表
路由表
路由协议查找的表 route print 命令
在链路上: 直连在网络上,我自己直接可以连接的,不需要通过路由转发
3、传输层重点协议--TCP UDP
TCP协议
概念
TCP(transmission control protocol)传输控制协议,就是要对数据的传输进行一定的控制。
形式:类比打电话场景,需要建立连接
tcp报文段
序号seq(sequence num):tcp数据包的编号,tcp数据包过大的时候,会分段(1,2,3,4),分段后要重组,此序号用于重组。seq==1 表示分段后的第一个数据包
确认号ack (acknowledge num):存在于确认消息里,依据序号编的 ack ==2(seq+1=1+1=2 )表示我已经收到了序号为1的包,我服务器期望收到你的下一个包的序号是2。
状态控制码6个标志位(code control flag)信号灯 1 亮 0 灭
ACK (acknowledge缩写) 确认位(确认消息包):=1 表示这个消息是一个确认消息
RST(reset缩写)重置:=1 表示这个消息释放连接。tcp连接出现错误--主机服务器崩溃,断开连接。如果要发消息,需要重新建立连接。
SYN(synchronous)同步(发送请求消息包): =1 表示:1、这个消息是一个发起连接的消息; 2、这个消息是一个确认接受连接消息。
FIN(final)终止:=1 表示发送报文结束了,完毕了,释放这个连接。(正常发送数据结束,区别RST,FIN如果被至为1,则表示4次挥手要开始了)
TCP建立连接(3次握手)
TCP三次握手
类比两个人初认识过程:
TCP断开连接(4次挥手)
TCP四次挥手
类比两个人分手过程:
UDP协议
概念
UDP协议(user datagram protocol) : 用户数据协议
形式:类比发短信场景,不会建立连接
不靠谱协议,可能会丢包,出错是被允许的
不需要可靠机制的场景,传输速度快,比较适用udp协议
资源消耗特别小
代表性基于udp协议的协议:dns(域名解析协议),snmp、 dhcp(动态获取ip 地址),rip(动态路由协议)
代表性基于tcp协议的协议:http、 https、 ftp
TCP 和UDP的对比
4、应用层重点协议--HTTP
概念
HTTP(Hyper Text Transfer Protocol) 超文本传输协议
http协议是基于tcp协议,默认端口是80端口---可靠协议
功能:用来规定客户端和服务器端的数据传输格式
特点:基于请求与响应模式的、无状态、无连接的应用层协议
无连接特点
限制每次连接只处理一个请求。
服务器处理完客户的请求,并受到客户的应答后,即断开连接。
初衷: 用户量(十万,上百万)页面请求,单个用户间歇性打(突发性,瞬时性),数据没有关联性,----资源浪费 ----设计为:释放连接
问题: 网页越来越复杂,--图片--效率低---解决办法---connection: keep-alive(保持请求一个长连接,再次请求的时候,不需要重新建立连接)
keep-alive
开启:connection: keep-alive ,会发起keep-alive的连接请求。http 1.1版本,该开关默认打开。
关闭: connection: close , 即可关闭
设置连接时间:在http header 中设置Keep-Alive:timeout=5,max=1000
timeout=5(超时时间,单位秒,超过这个时间后就断开连接)
max=1000 (最多连接次数,若超过这个次数后强制断开连接)
无状态特点
对事物处理没有记忆能力,服务器不知道客户端是什么状态;给服务器发送http请求之后,服务器回应之后,不会有任何记录
每个请求都是独立的
服务器处理后续请求--前面请求的信息---重传
优点:释放了服务器压力,不需要额外的记录信息,保存处理动作
缺点:重传--重复的请求--增大数据量--资源的浪费,执行效率低
动态交互: 淘宝--购物车--商品信息;login--后续操作(充值)----cookies session
cookies: 将前面的请求信息保存成一个临时文件---cookies值,存放在浏览器里。购物车:不同商品信息写入cookies,登录:可以把登录的账号信息存入cookies中
关闭浏览器, cookies被删除,也可以手动清除
session: 永久的cookies值。sessionId(会话编号)---保存在服务器上,保存在内存中 ---同时把这个sessionId传递给客户端
资源占用问题。设置session超时时间,清除sessionid。
http请求
四部分:
请求行(请求方法,URL统一资源定位符,http版本信息)
请求头部
3. 空一行 表示请求头部结束
4. 请求体
http响应
四部分:
响应行 (http版本 http状态 状态原因描述)
状态码:
1xx 接受的请求正在被处理
2xx 请求正常处理完毕
200 请求处理成功
3xx 重定向
302重定向
304 缓存,没有改动,不处理
4xx 客户端的问题导致的错误
404 页面不存在,网址错误
415 是content-type 不对
5xx 服务器的问题导致的错误
503 服务不可达,服务崩溃,服务没有起
2、响应头部
空一行
表示响应头结束
响应体
5、应用层重点协议--HTTPS
问题: http协议发送的数据都是明文的;中间可能有第三者进行窃听,截取数据包,篡改数据,伪装成客户端和服务器交互,服务器端没有任何机制确定客户端身份,客户端也没有什么机制确定服务器身份,存在安全隐患
解决:为了解决这种安全隐患,所以出现https协议。http+ssl=https
概念
HTTPS(hypertext transfer protocol Secure) 超文本传输安全协议,是以安全为目标的http通道,简单讲就是http的安全版,它加密数据并确保其机密性,数据密文是加密过的;可保护用户在与网站交互时免于窃取个人信息和计费数据---身份认证---保证信息的完整性。
默认端口:443
(三个安全保障)http+加密+身份认证+数据完整性=https
加密、身份认证、数据完整性的三个安全保障是通过ssl实现,具体是怎么实现的呢,看实现过程和原理如下:
http消息会在建立安全通道的基础上进行传输
真是交互过程
SSL协议版本:SSLv3 、TLS1.0 、TLS1.2
wireshark抓包https 流程
加密的交互报文:抓包工具是看不到的
加密:通过秘钥实现
身份认证:通过证书实现(证书申请是需要费用的),单向认------server发给客户端的证书, 也可以双向认证。
完整性保护:选出一组加密算法,一组哈希算法,哈希算法把摘要信息计算出一个哈希值。验证消息的完整性。客户端摘要信息=服务端摘要信息---数据没有被篡改。
6、HTTP vs HTTPS
尊重原创,如要转载,请注明出处:“转载自:https://blog.csdn.net/weixin_54280625”,作者保留著作权!谢谢!
软件测试开发交流群 458609378 免费领取测试资料 互助学习
TCPIP网络基础知识相关推荐
- linux基础-网络基础知识篇
一.网络基础知识概念 1.什么是网络? 网络即为实现通讯的技术. 2.网络的诞生六步曲 (1).早期的网络需要拥有两台通讯的主机,当主机之间有通讯需求是就构建网络进行通讯 (2).当主机网络需要通讯时 ...
- 收藏100个网络基础知识
100 个网络基础知识普及,看完成半个网络高手! 1)什么是链接? 链接是指两个设备之间的连接.它包括用于一个设备能够与另一个设备通信的电缆类型和协议. 2)OSI 参考模型的层次是什么? 有 7 个 ...
- 第二十六期:100 个网络基础知识普及,看完成半个网络高手
本篇文章是关于100个网络基础知识普及,看完成半个网络高手!下面,我们一起来看. 作者:佚名来源 本篇文章是关于100个网络基础知识普及,看完成半个网络高手!下面,我们一起来看. 1)什么是链接? 链 ...
- 网络基础知识 快速计算子网掩码的2种方法
网络基础知识 快速计算子网掩码的2种方法<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office ...
- 计算机网络有哪些技能知识,网络基础知识及操作技能.ppt
网络基础知识及操作技能 主讲人 李春报 一.计算机网络概述 1.计算机网络的概念 计算机网络是把分布在不同地理位置上的计算机.终端,用通信设备和通信线路连结起来,再配以相应的网络软件,从而使众多计算机 ...
- 华为HCNE专题一:网络基础知识
华为HCNE专题一:网络基础知识 对应章节:第一章 重点:理解网络结构,掌握OSI参考模型的基本结构 难点:OSI各层次名字及其概念的理解 亮点/应用/重要性:网络入门的基础,重中之重. 主要内容:针 ...
- 电脑网络基础知识:ipconfig/all命令及nslookupDns查询命令
电脑网络基础知识:ipconfig/all命令及nslookupDns查询命令 一.ipconfig/all的使用方法 在电脑中通过命令提示符执行命令ipconfig可以查询电脑ip.mac等配置信息 ...
- 全国计算机一级考试网络知识,全国计算机等级考试一级网络基础知识复习题及答案.doc...
全国计算机等级考试一级网络基础知识复习题及答案 全国计算机等级考试一级网络基础知识复习题(20)关于电子邮件,下列说法中错误的是_________. A)发送电子邮件需要E-mail软件支持 B)发件 ...
- 网络基础知识汇总学习
一.网线(双绞线)连接线的制作 双绞线制作有 568A 和 568B 两个标准,日常以 568B 标准较常用. 568B 标准按颜色排序为: 1- 橙白. 2- 橙.3- 绿白.4- 蓝. 5- 蓝白 ...
最新文章
- Could not find the main class: org.apache.catalina.startup.Boostrap. Program will exit.
- 替代微软SMS的好工具——Lansweeper
- 65%的家庭有人“啃老”,数据解读国内版巨婴是如何炼成的?
- Chapter 1 First Sight——33
- 绑定dictionary 给定关键字不再字典中_VBA数组与字典解决方案第51讲:字典嵌套及二级下拉菜单的制作...
- win7录制系统声音 加入立体声混音 camtasia recorder录屏
- (转)Eclipse在线配置Hibernate Tools
- android开发app初始化,Android 的 Application 初始化
- fastjson反序列化map_最新fastjson反序列化漏洞分析
- 怎样下载安装Firebug和使用Firebug
- 北京限行轮换时间7月5日起,北京新一轮尾号限行规定用便签提醒
- 参考文献显示DOI以及DOI颜色的设置
- mybatis自动生成更新时间和创建时间
- “大牌”纷纷入驻智能家居,小米能否守住高地?
- 鸿蒙系统可以微信吗,鸿蒙系统可以用微信吗?微信鸿蒙版本下载-游戏大玩家...
- 站长VS微商 你选择哪个?
- CSplitterWnd窗口分割之——动态静态嵌套分割(二)
- 安卓贴图源码---记录旋转后位置..类似in/百度魔图
- [附源码]计算机毕业设计基于springboot的高校资源共享平台
- arguments的理解?
热门文章
- SWD和JTAG调试接口
- SQL注入攻击常见方式及测试方法
- 测试集涨点猛如虎,推上线无收益?算法新手翻车原因盘点!
- Sony电脑重装系统Linux,索尼 SONYSVF15可以装windows8.1系统吗_索尼 SONYSVF15如何安装win8.1系统-系统城·电脑系统下载之家...
- 碎碎念【3】—— 趣味小故事
- 飞蚊症学计算机,飞蚊症可以老看电脑吗
- 褚君浩院士:传感器,让我们的敏感神经更敏感
- Ubuntu系统中Qt运行提示报错:Error while building/deploying project untitled (kit: 桌面) When executing s
- FreeSwitch的docker部署
- 家庭宽带上网连接方式