1分钟掌握计算机网络重点、会话保持技术、网络编程(TCP/IP协议)

  1. OSI七层协议:物理层、数据路层、络层、传层、话层、表层、应层(物联网叔会使用)
  2. 后来演化--->五层协议理层、数据路层、络层、传层、应层(物联网叔用)
  3. -------大概了解每层有什么用:从上到下---------
  4. 应用层:用户交互的层,如QQ。形成报文
  5. 传输层:差错控制、流量控制(控制发送方速度)、可靠传输(可靠传输TCP和不可靠传输UDP)、拥塞控制(从全局性来看,防止过多数据注入网络层)。形成报文段
  6. 网络层:差错控制、流量控制(控制发送方速度)、路由选择(选择接收端)。形成IP数据报
  7. 数据链路层:差错控制、流量控制(控制发送方速度)、成帧(将比特流组装成帧)。形成比特
  8. 物理层:把比特流转换成电信号。形成电信号

  1. -------------------------------------传输层--------------------------重点!
  2. 传输层有两个协议:可靠传输TCP协议、不可靠传输UDP协议
  3. 不可靠传输UDP协议:为什么不可靠?无需连接即可发送,也不需要等待对方确认(所以不知道是否会丢失信息)。优点:快(直播);缺点:不可靠
  4. ----------------TCP协议--------------
  5. 可靠传输TCP协议:为什么可靠?面向连接的,指的是需要先建立连接(对方报文确认)再发送,结束时需要释放连接(对方报文确认),而且有超时重传机制,有一个自适应算法,当多次收到冗余ack时,则说明该字段丢失,要求重传。优点:可靠(邮件、信息);缺点:慢
  6. 了解TCP协议首部(握手/挥手基础):在报文段中,首部有重点的控制位:
  7. 同步位(synchronize):SYN,等于1表示有一个开始请求
  8. 终止位(final):FIN,等于1表示有一个终止请求
  9. seq:报文段的位置)
  10. 确认位(acknowledge):ACK,等于1时,确认已经连接/终止。
  11. 复位(return):RST,等于1说明连接失败。
  12. 紧急位(urgent):URG,等于1时,不用在对方的传输层的缓存中排队
  13. tips:从上往下看,如syn=1,ack=1,seq=2,说明有一个连接请求并已经连接成功,并从上一条报文段的第2个位置开始
  14. ----------三次握手--------连接确认阶段
  15. 第一次ss:发送方-->syn=1,seq=x,有一个连接,从x位点开始(不包括x)
  16. 第二次sas:接收方-->syn=1,ack=1,seq=x+1,我也有一个连接,确认了连接,并请求从发送方的x+1的报文发送给我
  17. 第三次as:发送方-->ack=1,seq=x+1,确认了连接,发送第x+1开始发送报文
  18. ------------四次挥手---------连接释放阶段
  19. 第一次fs:发送方-->fin=1,seq=y,有一个终止任务给你,从y位点终结(包括y)
  20. 第二次as:接收方-->ack=1,seq=y+1,确认了释放终止,并从发送方的y+1位置的报文终止
  21. 第三次fas:接收方-->fin=1,ack=1,seq=y+1,有一个终止任务给你,我已经确认释放,并请求从发送方的y+1的报文位置终止
  22. 第四次as:发送方-->ack=1,seq=y+1,确认了终止,发送第y+1开始终止报文
  23. ------------->从两次比较可以知道,就第二次有差别,其它三次都无差别,开始变成终止而已

  1. -------------------------------------应用层--------------------------重点:1系统2协议
  2. 有1个重要的系统:域名解析系统DNS,有什么用?一般情况下用IP地址去查找网站,如127.1.1.1,但是用www.baidu.com也能访问,这就用到域名解析系统,将域名转成IP地址去访问,所以底层还是访问了IP。
  3. 有2个重要的协议:一个是Ftp协议(Xftp是啥的就不解释了),用来上传文件。另一个是Http协议(超文本传输协议),用来传输文本(Json);
  4. ---------------域名解析系统DNS---------------
  5. 扩展域名知识(可跳过):www:三级域名(www代表主页,也叫万维网,是最重要的域名之一,存有大量的主页及资源;还有mail开头的),baidu二级域名(如beijing),com顶级域名(如gov政府,cn中国)
  6. 域名解析系统在哪?我们的本地电脑系统就是一台域名解析系统,在某个文件夹中就定义了常访问的域名映射的IP地址,当我们访问该域名时,就可以访问到别的IP地址(如果修改了本地电脑文件,就算访问别的域名,调到的依然是你定义的IP地址)。存放位置为:C:\Windows\System32\drivers\etc的hosts文件中。
  7. 从小到大依次分为:本地域名服务器(我们电脑)、权限域名服务器、顶级域名服务器、根域名服务器。------>如果在本地域名服务器找不到,就会迭代查询,从小到大访问服务器,直到找到域名对应的IP地址
  8. ---------------HTTP协议---------------
  9. 主要特点:(1)无状态的(无记忆的坏处:只能传递消息,(网络层知道对方的路由位置),但并不知道对方具体叫什么名字,所以用到了cookile,有点像TCP首部一样,这不过是在HTTP的请求头里,负责记录信息)(2)采用TCP作为传输层协议,但HTTP在传输保温前是无需连接的(注意这句话不矛盾,TCP有连接,但HTTP无需先连接的)(3)HTTP连接:持久连接(HTTP1.1开始,keep-alive)和非持久连接(每次都要三次握手,HTTP1.0)(4)HTTP默认端口是80
  10. 响应状态码:1xx通知,2xx成功,3xx重定向,4xx客户端错误,5xx服务端错误
  11. HTTP--->HTTPS:HTTPS默认端口是443,特点:传输内容采用对称加密,但要是是采用非对称加密的。HTTPS安全性更高,但是耗费更多资源。
  12. ---------总结-----
  13. 由域名解析系统和HTTP协议,形成了URL,统一资源定位符(注:uri是统一资源标志符,唯一定位资源)
  14. -------------HTTP请求---------JavaWeb基础
  15. 概念:原本的Java程序是没有与网络相连的。有了Http协议之后,Http请求又分为了get、post、put、delete(Restful基础)类型,Http请求进入Tomcat后被创建成封装对象request,传递给java程序作为参数被传入HttpSerlevt处理。所以,JavaWeb可以说是计算机网络应用层的底层实现,接受了HTTP的请求。
  16. Cookie:由于HTTP是无状态的(记忆的),若用户是2个以上时,服务端往往会接收多个HTTP请求,就不知道该HTTP请求到底是A发送的还是B发送的。所以当用户发送HTTP请求进行登录鉴权之后,便得到了B用户的id,于是服务端发送方在HTTP请求头中附上用户id在cookie信息,封装在TCP里面(OSI层级往下是层层封装的),然后发送去客户端,客户端会层层解封TCP、HTTP请求,获取cookie放在浏览器。下次浏览器再访问时,会自动将cookie信息放入HTTP请求、TCP后发送。同理,服务端接收到拆封就得到了cookie,便知道了该请求是B用户id发送的请求。于是继续从数据库中导入该用户想要的信息返回。
  17. Session:cookie是保存在客户端的,那么客户的id信息可能会被盗取,这是不安全的。那么改变:当用户发送HTTP请求进行登录鉴权后,便根据key-value生成JsessionId-->用户的id,于是服务端发送方在HTTP请求头中附上JsessionId在cookie信息........。同理,服务端接收到拆封就得到了cookie,得到JsessionId,那么根据key找到了用户id。这样的好处就是客户端根本不知道用户的id是什么。而且,Session还能装一些较大的信息,如网页静态常用信息、用户购物车的信息(即提前根据用户id读取了数据库放入seesion中)
  18. ---------Json--------
  19. Json:放在HTTP里面的一种信息通用格式,全名是:application/json。还有其它编码形式:(1)post请求默认格式application/x-www-form-urlencaied(2)二进制数据格式(IO流)一般用于文件传输:multipart/from-date
  20. 这些信息有三种格式,那么传入时,对于不同的数据形式,进行绑定:(1)x-www-form-urlencaied:@RequestBody(HTTP请求中的post请求体内容)修饰用实体类pojo接收post的不同信息,如商品号、数量,最后将这些数据落入数据库(注意,pojo不要用Spring,不然是单例,线程不安全,应该用原型模式)(2)multipart/from-date:用MultipartFile类来接收IO流,在SpringBoot下还可以定义文件属性如最大单个文件大小/全部文件大小:Spring.http.multipart.maxFileSize/maxResquestSize

-------------------------------------网络编程(Java)--------------------------

  1. 网络编程的主要问题:(1)如何准确定位到网络上的一台或多台主机(2)找到主机之后如何进行通信;网络通信的要素:(1)IP号和端口号(2)网络通信协议
  2. 网络编程所用的的类:IP地址-->InterAddress类
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值