前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python全栈学习记录--3(2018

python全栈学习记录--3(2018

作者头像
py3study
发布2020-01-08 10:43:06
5620
发布2020-01-08 10:43:06
举报
文章被收录于专栏:python3python3

一、Linux操作系统 1、unix是目前世界上最稳定,安全的系统。是分时操作系统,多个联机终端和采用多道技术。 2、开源代表代表公开,所有人可以编辑查看,但不代表免费。 3、服务器要的是性能,稳定,效率,不间断运行。故LINUX更能胜任,WINDOW不行,运行久了就会很卡。 4、桥接:用交换机的方式上网,相当于在局域网内多增加一台电脑联网。 5、虚拟内存一般设为物理内存的1.5-2倍,但不超过8G。物理内存大于4G就足以运行目前几乎所有程序了,没必要设置虚拟内存了。

二、网络基础之OSI五层协议 1、网络通过电脑底层物理介质(网线,交换机,网卡等),由一个统一标准的互联网协议链接起来。 2、OSI五层含义:物理层相当于字母,数据链路层相当于单词、网络层相当于句子、传输层相当于语法、应用层才是实际的对话交流。 3、以太网协议规定:一组电信号构成一个数据包,称为帧。每一数据帧分成:报头HEAD和数据DATA两部分。 其中报头head固定18字节,包含:发送者地址(源地址),占6字节、接收者地址(目标地址),占6字节、数据类型,占6字节。就类似信件的发送和接收者地址和信件是用什么语言写的。 数据data最短46字节,最长1500字节),具体包含数据包的具体内容,就类似信件的正文。 head+data=最短64字节,最长1518字节。超过了就分片发送。 4、网路传输流程:通过网络设备(无线电波,电缆,光纤,双绞线)基于高低电频,实现数据在终端物理层间的传输;然后再数据链路层对数据进行分组,转换成十进制数据,进而转换成人类语言。 数据链路层定义了一个以太网协议,以太网协议规定了数据的分组方式,以太网规定所有想要联网的机器都要有网卡。到这一步实现了局域网内的广播式交流。 然后在网络层通过IP地址和MAC地址找到目标电脑。 然后再传输层基于端口(TCP/UDP,每个应用软件都有一个端口号,0-1024是给系统用的端口)找到接收软件(因为通信是应用软件之间的通信。) 然后到应用层:基于可自行定义的HTTP、FTP协议。其实就类似通过邮局之间的投递信件。 5、MAC地址:就是报头head包含的源地址和目标地址的由来。以太网协议规定每台连入internet的设备都必须要又一个网卡,发送端和接收端的地址其实就是网卡的地址,即MAC地址。 一个人的体貌特征就是MAC, 而通信地址+人名相当于IP地址可以进一步类比,通信地址是IP中的网络地址部分,人名相当于IP中的主机号部分你今天可以到这个国家, 明天可以到那个城市,通信地址(IP网络地址部分)就会变化,也可以到派出所改名字(IP主机号部分), 但一个人的体貌特征(MAC)永远不会变, 整容(修改MAC)不在讨论之列, 它唯一标识了你这个人。如果邮件的是寄给“上海市X区Y街道Z幢M室 小明收”,最后邮件送达M室(IP所在网络)的时候, 因为小明家里可能不止一个人(多台设备在同一个broadcast网络里),快递员会问, ”谁叫小明, 你有一封信”, 然后小明说"我是小明", 邮递员把邮件给到小明手中。还是没看出这个过程中体貌特征(MAC)起到了什么作用? 当小明说“我是小明”的时候, 邮递员已经把“小明”这个名字和小明这个人体貌特征联系起来了, 所以他会把信交到到小明的手中, 而没有放到这个家里的其他人的手中。 6、通信时,数据传输流程:发送数据包的时候:在应用层产生数据,在传输层封装上报头:发送者和接收者的MAC地址,传送到网络层并加上IP地址,再到数据链路层加上MAC地址,然到物理层打碎成计算机可识别的二进制数据。 接收数据包的时候:对方物理层收到的是二进制数据,数据链路层去除以太网头MAC地址,再网络层去掉IP,传输层去掉端口,然后到应用数据层。 三、网络基础之上网过程 1、DHCP服务器是分配动态IP地址的,IP地址是租用的。电脑没开机前是没有IP地址的,每次开机分配的IP地址都不一样。就和你去旅游一样,今天在中国,明天可能在美国了。 2、DNS:域名解析服务。比如打开百度网址,可以打开IP地址,或更方便点直接打开www.baidu.com. (后面有一个点,叫根域名,通常省略)域名。COM叫顶级域名,baidu叫下一级域名。不过在输入域名访问时,还是得让DNS转换成IP地址。 3、访问网站时,DNS先访问本地DNS和缓存DNS,如果有直接返回解析结果,如果没有则访问根DNS。 DNS分本地DNS、缓存DNS和根DNS。而如果要访问根DNS,则速度慢。 4、DNS查询走的是UDP协议(只管发送,最大有效传输数据量只有500多节,所以根DNS服务器只有13台)9台在美国,一台在日本,1台在瑞典,2台在欧洲。 四、三次握手和四次挥手 1、应用软件产生的数据到了传输层后,找到了接收软件后,但这不是目的,最终目的是与之通信。 2、TCP的三次握手和四次挥手:

python全栈学习记录--3(2018.1.13) 计算机基础知识
python全栈学习记录--3(2018.1.13) 计算机基础知识

通信时的三次握手: A、客户端先要发一个请求到服务器,请求会打上一个标志位SYN(代表客户端要建立一条到服务器的链接,链接是以标准协议发送的)同时发送seq=x,然后服务器返回ACK=x+1,表示同意,然后客户端能和服务器能对话了。同理服务器对客户端发送进行同样的请求,这样服务器就能和客户端也能对话,这样双向通路就建立好了。 SYN seq=y表示服务器想客户端发送对话请求,ACK=X+1表示服务器同意客户端的对话请求。ACK=y+1表示客户端同意服务器的对话请求。然后准备吧消息通过网卡发送给目标电脑,此时工作于应用层,处于用户态,ACK x+2表示服务器收到客户端发来的消息,然后切换到内核态,由网卡发送出去。所以ACK x+2是切换用户态到内核态的信号。然后同时清除客户端上的缓存。 B、UDP协议只管发送,发送后就清除缓存(因为缓存占用的是内存),不管对象存不存在,万一断网了,对方收不到数据,显得不可靠,所以要结合TCP协议,TCP得等对方确认收到消息后才清除缓存。 断开链接时的4次挥手: A、数据发送完了得断开链接,不然占用网络资源。 B、客户端数据传输完后,发送断开请求(标志位为FIN)给服务器,然后服务器返回ACK确认,这条线就断开。服务器和客户端断开也同理。就是四次握手了。 C、断开连接时,四次不能合并为3次。因为客户端数据传完时,服务器的数据传输并不一定就断开了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档