计算机网络笔记

网络层

网络层向上提供无连接的,尽最大努力交付的数据报服务

网络层不提供数据质量承诺

物理层使用的中间设备叫转发器repeater

数据链路层叫网桥bridge

网络层叫路由器router

网络层以上叫网关gateway

互联网由多种异构网络互联而成?

分类的ip地址

配套使用的协议:

ARP:地址解析协议

RARP:逆向地址解析协议

ICMP:网络控制报文协议

IGMP:国际组管理协议

ip地址被分为若干固定类 分别有ip地址 =  [网络号,主机号]

ABC类都是单播地址,一对一通信

A类地址 8位是网络号(第一位一定是0),24位主机号

所以,我们看到,A类Ip地址的范围是1.0.0.1—— 126.255.255.254(为什么是126?不是127?因为后七位不能全为1,作为保留地址)

B类IP地址16位网络号,16位主机号(一二位必须是10)

所以,B类地址的范围是128.0.0.1-191.255.255.254

C类ip地址24位网络号,8位主机号,前面以110开头。所以c类的范围是192.0.0.1-223.255.255.254

D类ip地址。1110开头,是多播地址 192.0.0.1-223.255.255.254

E类 以1111开头,作为保留地址

特殊的:0.0.0.0当前主机所在的网络地址 255.255.255.255当前子网

最大主机号数目的算法:2^(主机号位数) -2

比如A类那就是2^(24) – 2

IP地址在分配的时候只分配网络号,剩下的主机号由得到该网络的单位自由分配

IP地址与硬件地址的区别

从层次上看:硬件地址是数据链路层和物理层使用的地址

ip地址是网络层及以上各层使用的地址,是逻辑地址

|首部|应用层数据              |

|ip地址| tcp报文                                         |

||首部(硬件地址|                 ip报文                                          ||

⬅️mac帧

⚠注意:硬件地址,物理地址和MAC地址是同一个东西

划分子网

第一步,从 IP 中找到所属的网络,好比是去找这个人是哪个小区的;
第二布,再从 IP 中找到主机在这个网络中的位置,好比是在小区里面找到这个人。

第一步中的网络,就称之为「子网」(Subnet)。
从逻辑上来讲,一般同一子网(Subnet)是使用相同的网关。就好比,一个小区的入口。
IPv4的 IP地址是 32位的,形式如http://xxx.xxx.xxx.xxx,每一个 xxx取值都是 0 - 255。
到底是前三个 xxx 相同,就代表同一个子网,还是前两个,还是其他?这个并不一定。
就好比小区有大有小,有的小区有上千户人家,有的小区只有区区几个。
所以,就引入「子网掩码」(SubnetMask)来标识该子网的大小

关于对ip地址的理解:首先,相对于整个互联网,ip地址不是唯一的。好比中国广州市/张三  和中国广州/市张三。他们用的是同样的ip地址,但是他们并不是相同的人。而且他们所在的地区也不同。子网掩码在这里就是相对而言作为一个断句 而存在的东西。告诉你,哪个是地区,哪个是人名。所以108.223.255.124/24和108.223.255.124/25是完全不一样的两个人。虽然他们用了同样的ip地址。

ip地址==网络号:子网号:主机号

什么是默认的子网掩码?

如果一个ip网络号不划分子网的话,那就使用默认的子网掩码。也就是说,子网就是它自己

A类:255.0.0.0

B类:255.255.0.0

C类:255.255.255.0

其实就是和他的网络号位数对应。因为那些是不可以改变的

采用子网掩码的是ip地址如何寻址的

采用三级寻址。

1.        先去网络号(看你是哪一类的ip地址,子网掩码就能找到网络号)

2.        找到子网号:这时候就要用到子网掩码。看到你的子网号,看你到底是广州的还是广州市的

3.        主机号:看你用的是哪一台主机了。

应用层协议

UDP协议(用户数据报协议)

无连接,尽最大努力,面向报文

TCP协议(传输控制协议)

提供可靠的交付服务

面向连接的传输层协议

提供全双工通信

点对点,每个连接都有两个端点: 嵌套字socket==ip地址加上端口号

面向字节流

应用层

1.       经典问题。从输入URL到页面加载完成到底发生了什么

1.       拿到URL后开始域名解析

2.  DNS查找 浏览器缓存操作系统缓存路由器缓存

3.开始http请求

GET http://facebook.com/ HTTP/1.1

Accept: application/x-ms-application, image/jpeg,application/xaml+xml,[...]

User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; WindowsNT 6.1; WOW64;[...]

Accept-Encoding: gzip, deflate

Connection: Keep-Alive

Host: facebook.com

Cookie: datr=1265876274-[...]; locale=en_US; lsd=WW[...]; c_user=2101[...]

 

4 .服务器永久重定向(原因在下面)

5.浏览器跟踪重定向

6.服务器处理请求

7.服务器返回响应

8.浏览器表现页面(显示html)

9.浏览器获取嵌套在html里面的资源包括图片js css

浏览器解析HTML遇到需要下载的文件时,便再次向服务器(CDN)发送获取文件的请求。
  注意:
1. 动态页面无法缓存,静态文件允许浏览器进行缓存。
2. 静态文件本地有缓存时直接从本地读取
3. 请求响应头内包含着静态文件保存的期限,浏览器知道下载的静态文件要静默保留多久。
4. 响应头还会有静态文件的ETag(相当于版本号),当浏览器发现请求的静态文件的响应头的ETag与现有的缓存文件不符时,便会再次向服务器获取静态文件。

10.浏览器发送Ajax请求

http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/      //原文

http://www.jianshu.com/p/20871477edc2                  //翻译

DNS是干嘛的

DNS是域名解析系统

DNS只是将Domain Name转换成IP Address,然后再使用所查到的IP Address去连接(俗称“正向解析”)。事实上,将IP Address转换成Domain Name的功能也是相当常使用到的,当login到一台Unix工作站时,工作站就会去做反查,找出你是从哪个地方连线进来的(俗称“逆向解析”)。

寻找Internet域名并将它转换为IP地址

为什么要永久重定向,而不是直接返回用户需要的内容?

为什么要重定向,而不直接返回用户想看的内容呢?(既然服务器已经经过重定向知道了用户需要什么)

  答:原因之一:与搜索引擎排名有关。你看,如果一个页面有两个地址,就像http://www.igoro.com/ 和http://igoro.com/,搜索引擎会认为它们是两个网站,结果造成每一个的搜索链接都减少从而降低排名。而搜索引擎知道301永久重定向是 什么意思,这样就会把访问带www的和不带www的地址归到同一个网站排名下。

域名是怎样定义的

mail.cctv.com 其中mail是三级域名,cctv是二级,com是顶级

请记住,域名是按照机构划分的,和子网毛关系都没有

URL(统一资源定位符)是怎样定义的

协议://主机:端口/路径  (端口默认是80)

协议://服务器/资源 (和上面一样,叫法不同而已)

HTTP协议

面向事务的协议,规定了浏览器如何向万维网请求文档以及服务器如何发送文档给客户端

每个万维网都有一个监听tcp的80窗口,判断是否有浏览器发出连接请求。收到之后就会建立tcp连接,到最后断开

TCP是面向连接的。http是面向无连接的,而且,http协议是无状态的

http的流水线:不收到前一个响应也能发出下一个请求

http非流水线:收到前一个响应才能发出下一个请求

cookie存在的意义

因为http是无状态的协议。但是为了能够记住用户。所以在cookie

之中加入了客户的唯一识别码。服务器也知道cookie位123455的用户什么时候来,什么时候访问了什么

——————完————————-

http进阶(http权威指南)

http事务的构成

由一条http请求和一条http响应构成

http报文以及报文的构成

报文是http应用程序之间发送的数据块

起始行报文的第一行就是起始行,在请求报文中用来说明要做些什么,在响应报文中说明出现了什么情况。

首部字段起始行后面有零个或多个首部字段。每个首部字段都包含一个名字和一个值,为了便于解析,两者之间用冒号(:)来分隔。首部以一个空行结束。添加一个首部字段和添加新行一样简单。

主体空行之后就是可选的报文主体了,其中包含了所有类型的数据。请求主体中包括了要发送给Web服务器的数据;响应主体中装载了要返回给客户端的数据。起始行和首部都是文本形式且都是结构化的,而主体则不同,主体中可以包含任意的二进制数据(比如图片、视频、音轨、软件程序)。当然,主体中也可以包含文本。

GET /tools.html HTTP/1.0首部

User-agent: Mozilla/4.75 [en] (Win98; U)

Host: www.joes-hardware.com

Accept: text/html, image/gif, image/jpeg     请求头

Accept-language: en

响应报文

HTTP/1.0 200 OK

Date: Sun, o1 Oct 2000 23:25:17 GMT

Server: Apache/1.3.11 BSafe-SSL/1.38 (Unix)

Last-modified: Tue, 04 Jul 2000 09:46:21 GMT

Content-length: 403

Content-type: text/html

响应主体

<P>Joe’s Hardware Online has the largestselection of hammers on the earth.</P>

<H2><ANAME=drills></A>Drills</H2>

<P>Joe’s Hardware has a complete line ofcordless and corded drills, as well as the latest in plutonium-powered atomicdrills, for those big around the house jobs.</P>...

</BODY>

http方法有哪些

get:请求资源

head:只返回首部。也就是试探,看一下你有没有

put:请求创建一个文件,有的话则覆盖掉

post:提交数据

trace:看原始的http请求变成什么样了

option

delete 删除某个url资源

状态码

100 continue

101 转换协议中

200--299 成功状态码

200 ok

201 created 常用于put方法,请求已经创建

202 Accept 请求已经被接受

300-399

重定向状态码

301 永久重定向

302 临时重定向

400-499

400 语法错误

401验证

403 禁止

404找不到

409 confilct

414 url太长了

410 gone 老子曾经拥有过

500-599

500 自己错误

501 老子办不到

502 bad gateway

503 我崩了

505 您的协议我没有

计算机网络和http权威指南 读书笔记相关推荐

  1. mysql数据库权威指南_MySQL_MySQL权威指南读书笔记(三),第二章:MYSQL数据库里面的数 - phpStudy...

    MySQL权威指南读书笔记(三) 第二章:MYSQL数据库里面的数据 用想用好MYSQL,就必须透彻理解MYSQL是如何看待和处理数据的.本章主要讨论了两个问题:一是SQL所能处理的数据值的类型:二是 ...

  2. MongoDB权威指南读书笔记——CRUD

    插入并保存文档 插入是向MongoDB中添加数据的基本方法.可以使用Insert方法向目标集合插入一个文档:db.foo.insert({"bar" : "baz&quo ...

  3. HTTP权威指南读书笔记

    <<HTTP权威指南>>读书笔记 第一部分:Web的基础 第1章:HTTP概述 主要内容 1.什么是HTTP 2.HTTP的基本组件 HTTP HTTP:HTTP(Hypert ...

  4. HTML5权威指南----读书笔记

    <!DOCTYPE html> <html> <head><meta name = 'keywords' content="HTML5权威指南--- ...

  5. MapReduce总结 + 相关Hadoop权威指南读书笔记(未完......欢迎补充,互相学习)

    文章目录 MapReduce概述 MapReduce优缺点 MapReduce核心思想 MapReduce进程 MapReduce编程规范 WordCount 案例实操 本地测试 集群测试 Hadoo ...

  6. android开发读书笔记,android开发权威指南读书笔记

    第17章 Fragment 1.在res目录下增加 layout-sw600dp 目录,用于存放7英寸及以上尺寸屏幕的布局文件.10英寸以上平板用 sw720dp.如果是更小的屏幕,如 480*800 ...

  7. java性能权威指南中文_Java性能权威指南读书笔记--之一

    JIT(即时编译) 解释型代码:程序可移植,相同的代码在任何有适当解释器的机器上,都能运行,但是速度慢. 编译型代码:速度快,电视不同CPU平台的代码无法兼容. java则是使用java的编译器先将其 ...

  8. javascript权威指南读书笔记之二——词法结构

    本章讲述的内容,用通俗的语言来说,就是应该注意的地方,这些也许和我们所学的其他语言类似,也许完全不同,比如一开始就介绍说javascript程序中的每个字符都是用两个字节表示的,但有些程序设计者习惯于 ...

  9. HTTP权威指南读书笔记(一)HTTP概述、URL和资源及报文详解

    一.HTTP概述 1.WEB客户端和服务器. 2.资源:资源可以是各种格式的静态文件,也可以是应用程序. 3.媒体类型 4.URI:统一资源标识符 URL:统一资源定位符. URL的第一部分称为方案: ...

最新文章

  1. STM32的:外部中断线EXTIN和外部中断向量EXTIN_IRQn和中断服务程序入口EXTIN_IRQHandler详解
  2. 5G时代即将来临,三大运营商各自为营谁能抢占先机?
  3. BGP——Peer Group(讲解+配置)
  4. 谷歌提出深度CNN模型NIMA:帮你挑选清晰且有美感的图片
  5. github emoji 表情列表 1
  6. sql mdf文件被破坏,ldf完好的情况下恢复数据库
  7. 【服务器】【私人书库】宝塔安装calibre-web
  8. java安全框架下载文件_java安全框架之Permission学习笔记
  9. 话单分析账单分析行踪分析三合一数据分析,即可话单、账单、行踪、涉税数据独立分析,也可混合分析。
  10. [转]计算机四级网络工程师思维导图--计算机网络部分
  11. 简单工厂模式 简单例子
  12. sci一区二区 SCI、EI、ISTP分别指什么
  13. Generative Adversarial Networks(WGAN、SAGAN、BigGAN)
  14. 股票、期货、期权的差异
  15. 达内C++视频(全)
  16. 什么是微量元素?微量元素对人体有什么作用呢?GK
  17. iOS 通过定位获取常驻后台
  18. AI作画,NovelAI开源教程
  19. bootstrap文件不能被识别_基于 Yara 引擎的二进制文件扫描
  20. 香港银行开户哪家门槛低

热门文章

  1. 【调剂】云南师范大学2021年硕士研究生调剂公告(一)
  2. 区块链的前世今生:为什么说区块链是即将到来的数字革命?
  3. sql要学mysql还是php,MySQL_与MSSQL对比学习MYSQL的心得(一)--基本语法,这一期主要是学习MYSQL的基本 - phpStudy...
  4. 每日一句英语,看我能够坚持多久
  5. MySQL 中的系统库之sys 系统库
  6. 山外多功能调试助手用作MM32虚拟示波器
  7. UVM TLM2: SystemC和SV 通信
  8. 提高抗打击能力_如何提高心理抗打击能力?
  9. [转载]傅立叶变换在图像处理中的作用
  10. C++ vector数组实现多级排序—使用sort()函数