计算机网络基础

一、网络分层



物理层:RJ45、CLOCK、IEEE802.3
数据链路:PPP、FR、HDLC、VLAN、MAC
网络层:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGMP
传输层:TCP、UDP、SPX
会话层:RPC 、SQL、NETBIOS、NFS

表示层:JPEG、MPEG、ASCII、MIDI
应用层:RIP、BGP、FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS


二、TCP

ACK : TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1

SYN(SYNchronization) : 在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文。对方若同意建立连接,则应在响应报文中使SYN=1和ACK=1. 因此,  SYN置1就表示这是一个连接请求或连接接受报文。


FIN (finis)即完,终结的意思, 用来释放一个连接。当 FIN = 1 时,表明此报文段的发送方的数据已经发送完毕,并要求释放连接。



为什么要三次挥手?

  在只有两次“握手”的情形下,假设Client想跟Server建立连接,但是却因为中途连接请求的数据报丢失了,故Client端不得不重新发送一遍;这个时候Server端仅收到一个连接请求,因此可以正常的建立连接。但是,有时候Client端重新发送请求不是因为数据报丢失了,而是有可能数据传输过程因为网络并发量很大在某结点被阻塞了,这种情形下Server端将先后收到2次请求,并持续等待两个Client请求向他发送数据...问题就在这里,Cient端实际上只有一次请求,而Server端却有2个响应,极端的情况可能由于Client端多次重新发送请求数据而导致Server端最后建立了N多个响应在等待,因而造成极大的资源浪费!所以,“三次握手”很有必要!

为什么要四次挥手?

  试想一下,假如现在你是客户端你想断开跟Server的所有连接该怎么做?第一步,你自己先停止向Server端发送数据,并等待Server的回复。但事情还没有完,虽然你自身不往Server发送数据了,但是因为你们之前已经建立好平等的连接了,所以此时他也有主动权向你发送数据;故Server端还得终止主动向你发送数据,并等待你的确认。其实,说白了就是保证双方的一个合约的完整执行!



TCP如何保证可靠传输?

1、确认和重传:接收方收到报文就会确认,发送方发送一段时间后没有收到确认就重传。

2、数据校验

3、数据合理分片和排序:

  UDP:IP数据报大于1500字节,大于MTU.这个时候发送方IP层就需要分片(fragmentation).把数据报分成若干片,使每一片都小于MTU.而接收方IP层则需要进行数据报的重组.这样就会多做许多事情,而更严重的是,由于UDP的特性,当某一片数据传送中丢失时,接收方便无法重组数据报.将导致丢弃整个UDP数据报.

  tcp会按MTU合理分片,接收方会缓存未按序到达的数据,重新排序后再交给应用层。

4、流量控制:当接收方来不及处理发送方的数据,能提示发送方降低发送的速率,防止包丢失。

5、拥塞控制:当网络拥塞时,减少数据的发送


TCP与UDP的区别?

1.  基于连接 vs  无连接
TCP 是面向连接的协议,而 UDP 是无连接的协议。这意味着当一个客户端和一个服务器通过 TCP 发送数据之前,必须先建立连接,建立连接的过程也被称为 TCP 三次握手。
2. 可靠性
TCP 提供交付保证,这意味着一个使用 TCP 协议发送的消息是保证交付给客户端的,如果消息在传输过程中丢失,那么它将重发。UDP 是不可靠的,它不提供任何交付的保证,一个数据报包在运输途中可能会丢失。
3. 有序性
消息到达网络的另一端时可能是无序的,TCP 协议将会为你排好序。UDP 不提供任何有序性的保证。
4. 速度
TCP 速度比较慢,而 UDP 速度比较快,因为 TCP 必须创建连接,以保证消息的可靠交付和有序性,他需要做比 UDP 多的事。这就是为什么 UDP 更适用于对速度比较敏感的应用。TCP 适合传输 大量数据 , UDP 适合传输 少量数据。
5. 重量级 vs  轻量级
TCP 是重量级的协议,UDP 协议则是轻量级的协议。一个 TCP 数据报的报头大小最少是 20 字节,UDP 数据报的报头固定是 8 个字节。TCP 报头中包含序列号,ACK 号,数据偏移量,保留,控制位,窗口,紧急指针,可选项,填充项,校验位,源端口和目的端口。而 UDP 报头只包含 长度,源端口号,目的端口,和校验和。
6. 流量控制或拥塞控制
TCP 有流量控制和拥塞控制。UDP 没有流量控制和拥塞控制。
7.TCP  面向字节流,UDP  是面向报文的。
TCP 是字节流的协议,无记录边界。UDP 发送的每个数据报是记录型的数据报,所谓的记录型数据报就是接收进程可以识别接收到的数据报的记录边界。
8.TCP  只能单播,不能发送广播和组播;UDP 可以广播和组播。


TCP头部?20字节


HTTP请求报文

报文格式:请求行、请求头、(请求空行)、请求正文

1.请求行
由 3 部分组成,分别为:请求方法、URL 以及协议版本,之间由空格分隔;请求方法包括 GET、HEAD、PUT、POST、TRACE、OPTIONS、DELETE 以及 扩展方法,当然并不是所有的服务器都实现了所有的方法,部分方法即便支持,出于安全性的考虑也是不可用的;
协议版本的格式为:HTTP/主版本号.次版本号,常用的有 HTTP/1.0 和HTTP/1.1;
2.请求头
请求头部为请求报文添加了一些附加信息,由“名/值”对组成,每行一对,名和值之间使用冒号分隔。


3.空行
请求头的最后会有一个空行, 表示请求头部结束,接下来为请求正文,这一行非常重要,必不可少。
4.请求正文
可选部分,比如 T GET  请求就没有请求正文。


HTTP响应报文

状态行、响应头、空行、响应正文





为什么 P HTTP  是无状态的?如何保持状态 ( 会话跟踪技术 、 状态管理)?

HTTP 无状态:无状态是指协议对于 事务处理没有记忆能力,不能保存每次客户端提交的信息,即当服务器返回应答之后,这次 事务的所有信息就都丢掉了。如果用户发来一个新的请求,服务器也无法知道它是否与上次的请求有联系。
优点:服务器不用为每个客户端连接 分配内存来记忆大量状态,也不用在客户端失去连接时去清理内存,节省服务器端资源,以更高效地去处理业务。
缺点:缺少状态意味着 如果后续处理需要前面的信息 , 则客户端必须重传,这样可能导致每次连接,传送的数据量增大。

有四种会话跟踪技术:
1.COOKIE
2.Session
3.URL 重写
4.作为隐藏域嵌入 HTML 表单中(隐藏表单域)

    在浏览器和服务器之间来回传递一个标识符,这就是所谓的会话(session)跟踪。来自浏览器的所有包含同一个标识符(这里是 SESSIONID)的请求同属于一个会话。会话的有效期直到它被显式地终止为止,或者当用户在一段时间内没有动作,由服务器自动设置为过期。 

http  的安全问题:
a、通信使用明文不加密,内容可能被窃听
b、不验证通信方身份,可能遭到伪装
c、无法验证报文完整性,可能被篡改
HTTPS 就是 HTTP 加上加密处理(一般是 SSL 安全通信线路)+认证+完整性保护

浏览器和服务器在基于  https  进行请求链接到数据传输过程中,用到了哪些技术?
1.  对称加密算法
用于 对真正传输的数据进行加密。
2. 非对称加密算法
用于在握手过程中 加密生成的密码。非对称加密算法会生成公钥和私钥,公钥只能用于加密数据,因此可以随意传输,而网站的私钥用于对数据进行解密,所以网站都会非常小心的保管自己的私钥,防止泄漏。
3. 散列 算法
用于 验证数据的完整性。
4.数字证书

数字证书其实就是一个小的计算机文件,其作用类似于我们的身份证、护照,用于证明身份,在 SSL 中,使用数字证书来证明自己的身份。

Session和Cookie的详解(会话跟踪技术,因为Http是无状态的)

cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案

cookie 和session 的区别:

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
   考虑到安全应当使用session。

3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
   考虑到减轻服务器性能方面,应当使用COOKIE。

4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

5、所以个人建议:
   将登陆信息等重要信息存放为SESSION
   其他信息如果需要保留,可以放在COOKIE中

路由器与交换机的区别是什么?
1.交换机工作在数据链路层;路由器工作在网络层。
2.交换机转发数据帧;路由器转发 IP 分组。
3.交换机隔离冲突域,不隔离广播域;路由器隔离冲突域,隔离广播域





  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值