网络协议学习笔记

一、基本概念

1.1 什么是网络协议?

  • 互联网上端对端实现互联过程中,必须有各种各样的协议规定传输的方式,其中最常见的协议就是 HTTP

1.2 Java跨平台原理

  • 利用各个平台安装的JVM(Java虚拟机),运行Java程序, 一次编译,多端运行


    Java跨平台原理.png

1.3 C/C++ 跨平台原理

  • 使用平台自己的编译器生成对应平台的可执行文件


    C/C++ 跨平台原理.png

1.4 网络互连模型

image.png

1.5 请求过程

  • 每一层对数据进行包装后,传给下一层,下一层再进行包装,依次类推
  • 每一次向上回传时,解除自己对应层的包装后,传给上一层,以此类推


    image.png

1.6 每个层对应的协议和应用

image.png

1.7 计算机互连方式

  1. 网线直连

  2. 同轴电缆

    • 半双工通信
    • 容易冲突
    • 不安全
    • 中间断了,整个瘫痪


      image.png
  3. 集线器(Hub)

    • 跟同轴电缆一样


      image.png
  4. 网桥

    • 能够通过自学习得知每个接口那侧的地址,从而起到隔绝冲突域的作用


      image.png
  5. 交换机

    • 相当于更多接口的网桥
    • 全双工通信
    • 比集线器安全
  6. 路由器

    • 多个不同网段之间转发数据。(网线直连,同轴电缆、集线器、网桥、交换机只能在同一网段,连接设备处于同一广播域)
    • 隔绝广播域(ARP广播)

二、MAC地址和IP地址

2.0 网络连接流程:由对方IP地址解析成MAC物理网卡地址再进行连接通信

2.1 ARP

  • 通过IP地址发出ARP广播,获取设备的MAC地址

2.2 RAPP、DHCP

  • 逆地址解析,由MAC地址解析出IP地址

2.2 ICMP

  • 互联网控制消息协议
  • 用于返回错误信息

2.3 IP地址的组成

  • 网络ID + 主机ID (由子网掩码计算出来)

2.4 IP地址的分类

  1. A类:1 ~ 126
  2. B类:127 ~ 191
  3. C类:192 ~223
  4. D类:224 ~ 239

2.5 子网掩码的CIDR表示法

2.6 为什么要进行子网划分

  • 让更多同类IP划分到同一网段,节省IP地址资源

三、路由

3.0 作用:跨网段通信

3.1 公网IP、私网IP

  • 公网IP由ISP(通信运营商向Inter NIC(因特网信息中心)申请)
  • 私网IP主要用于局域网
  • Internet上的路由器只有达到公网的路由表,没有达到私网的路由表
  • 公网就是我们日常上网用到的IP,私网就是公司内部服务器的私有IP

3.2 NAT

  • 私网IP访问公网IP需要进行NAT转换
  • 可以节约公网IP资源
  • 会隐藏内部正式IP
  • 静态转换
  • 动态转换
  • PAT,多对一转换,采用端口多路复用,是目前使用最广泛的方式

四、物理层

4.0 主要定义了接口标准、线缆标准、传输速率、传输方式

4.1 数字信号、模拟信号

主要是物理设备,比如光猫,把模拟信号转化为数字信号,这部分没什么好说的

五、数据链路层

5.0 从1个节点到相邻节点的一段物理路线(有线或无线),中间没有其他交换交点

六、网络层

6.0 决定数据的路径选择和转寄,将网络表头(NH)加至数据包,以形成分组。网络表头包含了网络资料。例如:互联网协议(IP)等。

七、传输层

7.0 主要有两个协议

  • TCP
  • UDP


    image.png

详情请看:

  1. 面试官:TCP如何实现可靠性传输
  2. 这一次,彻底搞懂TCP3次握手、4次挥手好吗

八、应用层

8.1 应用场景

  • 超文本传输:HTTP、HTTPS
  • 文件传输:FTP
  • 电子邮件:SMTP、POP3、IMAP
  • 动态主机配置:DHCP
  • 域名系统:DNS

8.0 DNS

  • 将域名转化为IP地址
  • 基于UDP或TCP协议,占用53端口

8.1 DHCP

  • 动态主机配置协议
  • 基于UDP协议,客户端口为68端口
  • DHCP服务器会从IP地址池中,挑选一个IP地址“出租“给客户端一段时间,时间到期就回收它们
  • 平时家里上网的路由器就可以充当DHCP服务器

九、HTTP

9.0 超文本传输协议

  • 是互联网中应用最广泛的应用层协议之一
  • 设计HTTP最初的目的是:提供一种发布和接收HTML页面的方法,由URI来标识具体的资源
  • 后面用HTTP来传递的数据格式不仅仅是HTML,应用非常广泛
  • HTML( Hyper Text Markup Language):超文本标记语言
  • 用以编写网页

9.1 历代版本

  1. 1991年 HTTP/0.9:只是Get请求
  2. 1996年 HTTP/1.0 :
    • 支持POST、HEAD等请求方法,支持请求头、响应头等,支持更多种数据类型(不再局限于文本数据)
    • 浏览器的每次请求都需要与服务器建立一个TCP连接,请求处理完成后立即断开TCP连接
  3. 1997年,HTTP/1.1(最经典、使用最广泛的版本)
    • 支持PUT、DELETE等请求方法
    • 采用持久连接(Connection: keep-alive),多个请求可以共用同一个TCP连接
  4. 2015年,HTTP/2.0
  5. 2018年,HTTP/3.0

9.2 报文

9.3 请求方式

9.4 状态码

9.5 代理

  • 正向代理:代理的对象是客户端
    • 作用:隐藏客户端身份、绕过防火墙、Internet访问控制、数据过滤
  • 反向代理:代理的对象是服务器
    • 作用:隐藏服务器身份、安全防护、负债均衡

9.6 抓包工具的原理

  • Fiddler、Charles等抓包工具的原理:在客户端启动了正向代理服务
  • Wireshark的原理是:通过底层驱动,拦截网卡上流过的数据

9.7 CDN 内容分发网络

  • 利用最靠近每位用户的服务器
  • 更快更可靠地将音乐、图片、视频等资源文件(一般是静态文件)放到CDN服务器,再由CDN服务器传递给用户

十、网络安全

10.1 网络层---ARP欺骗

  • 可让攻击者获取局域网上的数据包甚至可篡改数据包
  • 可让网络上特定电脑之间无法正常通信(例如网络执法官这样的软件)
  • 让送至特定IP地址的流量被错误送到攻击者所取代的地方

10.2 ARP欺骗---防护

  • 静态ARP
  • DHCP Snooping
  • 网络设备可借由DHCP保留网络上各电脑的MAC地址,在伪造的ARP数据包发出时即可侦测到
  • 利用一些软件监听ARP的不正常变动

10.3 Dos、DDos攻击

  • DoS攻击(拒绝服务攻击,Denial-of-Service attack)
  • 使目标电脑的网络或系统资源耗尽,使服务暂时中断或停止,导致其正常用户无法访问
  • DDoS攻击(分布式拒绝服务攻击,Distributed Denial-of-Service attack)
  • 黑客使用网络上两个或以上被攻陷的电脑作为“僵尸”向特定的目标发动DoS攻击 -
  • 2018年3月,GitHub遭到迄今为止规模最大的DDoS攻击
  • DoS攻击可以分为2大类
    1. 带宽消耗型:UDP洪水攻击、ICMP洪水攻击
    2. 资源消耗型:SYN洪水攻击、LAND攻击

10.4 Dos、DDos防御

  • 防御方式通常为:入侵检测、流量过滤、和多重验证

    • 堵塞网络带宽的流量将被过滤,而正常的流量可正常通过
  • 防火墙

    • 防火墙可以设置规则,例如允许或拒绝特定通讯协议,端口或IP地址
    • 当攻击从少数不正常的IP地址发出时,可以简单的使用拒绝规则阻止一切从攻击源IP发出的通信
    • 复杂攻击难以用简单规则来阻止,例如80端口遭受攻击时不可能拒绝端口所有的通信,因为同时会阻止合法流量
    • 防火墙可能处于网络架构中过后的位置,路由器可能在恶意流量达到防火墙前即被攻击影响
  • 交换机:大多数交换机有一定的速度限制和访问控制能力

  • 路由器:和交换机类似,路由器也有一定的速度限制和访问控制能力

  • 黑洞引导

    • 将所有受攻击计算机的通信全部发送至一个“黑洞”(空接口或不存在的计算机地址)或者有足够能力处理洪流的网络设备商,以避免网络受到较大影响
  • 流量清洗

    • 当流量被送到DDoS防护清洗中心时,通过采用抗DDoS软件处理,将正常流量和恶意流量区分开
    • 正常的流量则回注回客户网站

10.5 应用层 --- DNS挟持

  • DNS劫持,又称为域名劫持
    攻击者篡改了某个域名的解析结果,使得指向该域名的IP变成了另一个IP
    导致对相应网址的访问被劫持到另一个不可达的或者假冒的网址
    从而实现非法窃取用户信息或者破坏正常网络服务的目的
  • 为防止DNS劫持,可以考虑使用更靠谱的DNS服务器,比如:114.114.114.114
    谷歌:8.8.8.8、8.8.4.4
    微软:4.2.2.1、4.2.2.2
    百度:180.76.76.76
    阿里:223.5.5.5、223.6.6.6
  • HTTP劫持:对HTTP数据包进行拦截处理,比如插入JS代码
    比如你访问某些网站时,在右下角多了个莫名其妙的弹窗广告

10.5 HTTP协议的安全问题

◼ HTTP协议默认是采取明文传输的,因此会有很大的安全隐患 常见的提高安全性的方法是:对通信内容进行加密后,再进行传输
◼ 常见的加密方式有
不可逆
✓ 单向散列函数:MD5、SHA等 可逆
✓ 对称加密:DES、3DES、AES等 ✓ 非对称加密:RSA等
其它
✓ 混合密码系统
✓ 数字签名
✓证书

TODO:待续

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容