发表于: 2017-06-04 23:34:26
1 1067
今天完成的任务
1.把添加公司标签封装成了指令
2.职业部分
明天的计划
1.职业部分页面
遇到的问题
指令和控制器之间的数据传输问题,一个简单的双向绑定都没法实现。。。也是醉了
最后就是把服务当作一个桥梁,在控制器和指令之间,来实现一个假假的双向绑定
收获
一.TCP/IP协议
这个协议具有四层结构
从底层向上分别是
网络接口层
网络层
运输层
应用层
今天主要学习的是应用层和运输层
1.运输层
运输层为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)。
运输层还要对收到的报文进行差错检测。
运输层需要有两种不同的运输协议,即面向连接的 TCP 和无连接的 UDP。
1). UDP
这个运输层协议在传送数据之前不需要事先建立连接,对方的运输层在收到UDP报文后,也不需要给出任何确认。虽然这种协议不提供可靠交付,但是在应对一些诸如远程视频会议系统等这类有容错率的事情时,UDP是相对最有效的工作方式。
2). TCP
对比上面的协议,TCP提供面向连接的服务,而且由于要提供可靠的面向连接的运输服务,开销也不可避免的增多,占用的处理机资源也较多。
TCP的连接
每条TCP连接两个端点,这两个端点称为套接字(socket)
套接字是什么呢,如下所示
Socket = IP地址:端口号
这样我们的TCP连接就可以如下表示
TCP 连接 ::= {socket1, socket2}
= {(IP1: port1), (IP2: port2)}
TCP报文段首部
TCP报文段的首部用来记录一些必要信息,这个些信息至少分配有20个字节,其中固定的信息如下
1.端口部分
分为源端口和目的端口,这两个部分各占2字节
端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。
2.序号
为了实现上述所说的提供可靠的面向连接的运输服务,TCP连接传送的数据流中的每一个字节都编上一个序号,这个位置传递的序号就是本段报文所发送数据的第一个字节的序号
3.确认号
确认号是期望收到对方下一个报文段的数据的第一个字节的序号,假如我从上一个报文收到的是从序号100开始49个字节数据,那么发送过去的确认号就应该是150。
4.数据偏移长度 保留
数据偏移是指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远
保留字段是保留为今后再开发新的字段所留白的地方,目前为止是0,占六位
5.URG
和紧急指针配合使用,当值为1时,紧急指针有效,提高报文优先级
6.ACK
配合确认号字段,值为1的时候,确认号字段有效
7.PSH
用于尽快交付应用进程,当值为1时,此段报文会尽快交付,不会等待缓存填满
8.RST
复位,当值为1时,表明TCP连接中出现严重差错,必须释放链接,在重新建立连接
9.SYN
当数值为1的时候,表示这是一个连接请求或者连接接受报文
10.FIN
终止,值为1的时候,表示发送完毕,要求释放链接
TCP的运输连接管理
TCP连接的建立
1.首先客户端主动打开,向服务端发送连接请求报文段。
SYN = 1 seq = x
SYN = 1这个表示这是一个链接请求
seq = x 表示传送数据时的第一个数据字节是x
这段报文是不能携带数据的,但是要消耗一个序号。
2.服务器B这时候收到这个报文段,如果是同意的,则发回确认
SYN = 1 ACK = 1 seq = y ack = x+1
SYN字段 是表示 这是一个连接接受报文
ACK 其确认号 ack 是 接收的报文的 序列号+1
seq = y 此段序号是B自己选择的 此报文段也要消耗一个序号
3.这时A收到了来自B的报文还要再给B发一段报文
首先
ACK还是等于 1,这样返回的确认码,就是上个报文序号字段+1
然后 自己的序号就是 接收报文的 确认码
A通知应用层连接已经建立
B收到A的这段报文之后,通知其上层应用进程,连接建立
至此
TCP连接建立完成
3.常见的应用层协议
DNS 域名系统
起因是因为以IP为地址难以记忆,不便使用
现在将IP地址与域名一一对应
域名服务器
根域名服务器
根域名服务器把下一步应当找的顶级域名服务器的 IP 地址告诉本地域名服务器。
顶级域名服务器
负责管理在该顶级域名服务器注册的所有二级域名。
权限域名服务器
负责一个区域的域名服务器
本地域名服务器
当一个主机发出 DNS 查询请求时,这个查询请求报文就发送给本地域名服务器。
HTTP 超文本传输协议
万维网 WWW (World Wide Web) 用链接的方法能非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。
浏览器就是在用户计算机上的万维网客户程序。万维网文档所驻留的计算机则运行服务器程序,这个计算机也称万维网服务器。
使用统一资源定位符 URL (Uniform Resource Locator)来标志万维网上的各种文档。
万维网客户程序与万维网服务器程序之间进行交互所使用的协议是超文本传送协议 HTTP (HyperText Transfer Protocol)。
使用超文本标记语言 HTML (HyperText Markup Language)使得各种万维网文档都能在因特网上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在着超链。
HTTPS 以安全为目标的HTTP通道
默认使用TCP端口443
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全 。
WebSocket
WebSocket协议是基于TCP的一种新的网络协议,是html5提出的一个协议规范 。它实现了浏览器与服务器全双工通信——允许服务器主动发送信息给客户端。
评论