点击流系统
2017-01-10 14:52:14 0 举报
点击流系统是一种用于分析用户行为的数据收集和分析系统。它通过跟踪用户在网站上的点击行为,记录下用户浏览的页面、点击的链接、停留的时间等信息,并将这些信息存储在一个数据库中。然后,通过对这些数据进行分析,可以了解用户的喜好、兴趣和行为模式,从而为用户提供更加个性化的服务。此外,点击流系统还可以帮助企业更好地了解其产品或服务在市场上的表现,以便进行更有效的市场推广。总之,点击流系统是一种强大的工具,可以帮助企业更好地了解其客户,并根据客户需求提供更好的产品和服务。
作者其他创作
大纲/内容
描述符=scoket
解析器
IP 与以太网的包收发操作 (1)路由器根据目标地址判断下一个路由器的位置 (2)集线器在子网中将网络包传输到下一个路由 实际上,集线器是按照以太网规则传输包的设备,而路由器是按照IP 规则传输包的设备,因此我们也可以作如下理解。(1)IP协议根据目标地址判断下一个IP转发设备的位置 (2)子网中的以太网协议将包传输到下一个转发设备TCP/IP包:(a)MAC头部(用于以太网协议) (b)IP头部(用于IP协议) 记住:IP协议是找通过目的地过程中的下一个网络设备(路由器或者叫gateway)MAC是在以太网中将包发送到IP协议找的那个设备
IP(传输网络包和确认路由)
连接的时候,发送的控制信息头,是需要发送给对方自己起始的序号的,也就协议栈产生的随机数,用于记录数据块的顺序。TCP双向:客户端首先发送位置号 SYN=1 和自己的起始的序列号给服务端,服务端接受之后,计算ack号,会进行ACK确认,并也要发送自己的SYN=1 和自己的序列号然后客户端会回复ACK确认给服务端,说明自己成功接受了服务端的数据,至此connect 结束。
ICMP
Socket 库
协议栈的结构
read 就是读取服务端返回的数据,过程和客户端发送数据的过程是一样的,返回的数据放到客户端的接收缓冲区中
MTU 1500 字节
控制信息分为两类,一类被存储为TPC头中,在连接阶段只有控制信息,也就是tpc头,没有实际的数据。tcp头就是用来记录和交换控制信息的一类是存储在套接字,用来控制协议栈操作信息的,。应用程序传递来的信息以及从通信对象接收到的信息都会保存在这里,还有收发数据操作的执行状态等信息也会保存在这里,协议栈会 根据这些信息来执行每一步的操作总结:通信操作中使用的控制信息分为两类。 (1) 头部中记录的信息 (2) 套接字(协议栈中的内存空间)中记录的信
应用程序
TCP需要连接
集线器:当信号到达集线器后,会被广播到整个网络中。以太网的基本架构 A 就 是将包发到所有的设备,然后由设备根据接收方MAC地址来判断应该接 收哪些包,而集线器就是这一架构的忠实体现,它就是负责按照以太网的 基本架构将信号广播出去。接下来,信号从所有接口流出,到达连接在集线器上的所有设备。然 后,这些设备在收到信号之后会通过MAC头部中的接收方MAC地址判 断是不是发给自己的,如果是发给自己的就接受,否则就忽略集线器将信号发送给所有连接在它上面的线路。信号到达集线器的PHY(MAU)模块后,会进入中继电路。中继电路 的基本功能就是将输入的信号广播到集线器的所有端口上集线器不会进行信号转换,而是将网络包原封不动的转发到连接他的所有设备大致过程:信号->输入的网线->接收口->phy->中继电路-> 集线器所有端口-> 网线下发到所有连接的设备-> 设备判断mac地址,是不是接受。她半双工模式,所以不能同时发送多条信号,会有碰撞问题。
MAC头部
close
该信号通过
发送数据的时候,长度和时间两个因素怎么平衡,每个协议栈也没有告诉我们怎么取做这个平衡,每个系统的协议栈实现方式也不一样。协议栈会给留给应用程序一些选项来选择,通过这些选项,按照应用程序的要求来发送数据,如不等待直接发送,还是等待等,浏览器这种等待缓冲区填满,会造成客户端很大的延迟,会直接让协议栈从缓冲区进行发送数据。当发送到缓冲区的数据长度超过MSS的时候,协议栈就会将数据拆分,分多次网络包进行发送。
集线器
交换机:基于以太网协议,就是mac地址的,是基于mac地址来确定转发目标的。交换机并不只是简单地让信号 流过,而是先接收信号并将其还原为数字信息,然后再重新转换成信号并 发送出去的过程。具体过程为:,当信号从双绞线传入时,就会进入PHY(MAU) 模块的接收部分。 接下来,PHY(MAU)模块会将网线中的信号转换为通用格式,然后 传递给MAC模块。MAC模块将信号转换为数字信息,然后通过包末尾的 FCS校验错误,如果没有问题则存放到缓冲区中 C。这部分操作和网卡基本 相同,大家可以认为交换机的每个网线接口后面都是一块网卡。网线接口 和后面的电路部分加在一起称为一个端口,也就是说交换机的一个端口就相当于计算机上的一块网卡 ,但是和计算机的网卡不一样,交换机的网卡没有mac地址,计算机的网卡要判断是不是和自己的mac地址一样,才会接受数据,而交换机不是,会把数据放入到缓冲区,他是如何知道下发数据呢,交换机有mac地址缓存的表,mac地址对应的是哪个网线接口,首先判断mac地址表内是否有,如果有,直接发送到的直接的接口,然后下发到连接的设备,如果没有,则需要发送到处理交换机源端口外的所有端口,有正确返回响应的就是说明对方接受,然后写入Mac地址表供下次使用,,如果接收方MAC地址是一个广播地址 A,那么交换机会将包发 送到除源端口之外的所有端口。还有mac地址表是有缓存时间的,否则网线的设备给怕掉了,就会出现发送错误的情况,也就是一定时间后就会删除。大致过程:信号->网线->接收口->PHY(MAU)->MAC->BUFFER->mac地址表->对应的端口->mac->phy->网线发送出去交换机是全双工模式,可以同时进行发送和接受信号,而且可以同时转发多条信号。
控制位:该字段中的每个比特分别表示以下通信控制含义。 URG:表示紧急指针字段有效 ACK:表示接收数据序号字段有效,一般表示数 据已被接收方收到 PSH:表示通过 flush 操作发送的数据 RST:强制断开连接,用于异常中断的情况 SYN:发送方和接收方相互确认序号,表示连接 操作 FIN:表示断开连接
write
半双工模式怎么通过网线发送出去iP模块委托给mac模块进行发送数据,网卡驱动会将数据存储到网卡的缓冲区,然后发送命令给mac模块,让其发送数据,进行信号转换。MAC模块从报头开始将数字信息按每个比特转换成电信号,然后由PHY, 或者叫MAU的信号收发模块发送出去 C。在这里,将数字信息转换为电信 号的速率就是网络的传输速率,例如每秒将10 Mbit的数字信息转换为电 信号发送出去,则速率就是10 Mbit/s。,PHY(MAU)模块会将信号转换为可在网线上传输的格式, 并通过网线发送出去。 Mac模块PHY(MAU)模块会PHY(MAU)的职责并不是仅仅是将MAC模块传递过来的信号通过 网线发送出去,它还需要监控接收线路中有没有信号进来,防止信号碰撞总结:网卡的MAC模块生成通用信号,然后由PHY(MAU)模块转换 成可在网线中传输的格式,并通过网线发送出去。网卡中的PHY(MAU)A模 块负责将包转换成电信号,信号通过接口进入双绞线。以太网信号的本质是正负变化的电压,大 家可以认为网卡的PHY(MAU)模块就是一个从正负两个信号端子输出信 号的电路
TPC/IP协议栈
gethostbyname
应用程序调用socket组件创建套接字,然后将套接字的描述符写入应用程序制定的内存地址,也就是返回给应用程序了,此时套接字没有任何控制信息的
网络应用于程序
MAC模块
收到中断信号,暂时中断其他任务
怎么拆分
名称
长度 bit
含义
发送方端口
接收方端口
序号
ack号
数据偏移量
保留
控制位
窗口
校验和
紧急指针
可选字段
MSS
应用 程序调用Socket库内的gethostbyname 组件,,也就是解析器,进行域名解析,里面发送的udp协议
操作系统
连接到
数据
将信号转为为通用格式
网卡的缓冲区
tpc 拆分
硬件
终端计算机
网卡
具体调用个驱动程序,是由中断号决定的,中断号绑定网卡驱动
ACK号的管理和说明ACK等时间:根据网络包平均往返时间动态调整 ACK 号等待时间 ,而不是一个固定的值。使用窗口有效管理 ACK 号什么时候发送ack号什么时候 发送窗口大小ack并不会立即发送出去,否则包会很多,会有定时器,到时就会发送ack,窗口大小是我接收方还能接受多少数据,需要告诉发送方,也不是变化了就立即发送,可以多次变化之后发送最后的窗口大小发送的时机为应用程序取完数据后,进行发送。合并ack和窗口大小为一个包发送出去只发送最大的ack,和最后一次调整的窗口大小发送出去,来减少网络的流量。
UDP不需要连接
根据max头内以太类型交给哪个模块,如果是ip 0080交给ip模块
套接字的实体就是通信控制信息【通信对象的ip,对象的端口,通信状态等信息】协议栈是根据套接字中记录的控制信息来工作的。创建套接字时,首先分配一个套接字所需的内存空间,然后向其 中写入初始状态创建套接字时返回的描述符,用于区分本地套接字的,ip和端口是区分远程套接字的
中断控制器
PHY/MAU模块
网卡驱动取出网卡缓冲区的包
集线器的半双工模式接收网络信号的过程
close 断开连接断开连接是应用程序主动发起给协议栈的http1.0 是服务端程序发起断开连接http 1.1 是可以有客户端发起断开连接这里以http1.0为例:服务端程序调用协议栈的close 方法,协议栈会发送一个FIN控制位为1 的包给客户端,客户端收到之后,恢复ACK号给服务端。接着客户端知道服务端发送完数据给自己了,自己也读取完数据了,然后客户端也会调用协议栈的close ,发送FIN控制位1给服务端,服务端恢复ACK号给客户端,客户端过一会就会删除套接字。
通过ACK和序号的方式确认数据是否被发送到对方,如果发送方没有接收到ACK号确认,则会进行包的重发,所以包在缓冲区发送完不会立即删除的,发送数据时,序号和ACK的用法如下:
连接的本质,实际是通信双方交换控制信息的过程,在套接字中记录了这些控制信息,连接实际上是通信双方交换控制信息,在套接字中记 录这些必要信息并准备数据收发的一连串操作,同时还会分配一块内存空间,存储收发的数据,这块空间被称为缓冲区。建立连接之后,协议栈的连接操作就结束了,也就是说connect已经 执行完毕,控制流程被交回到应用程序
网卡在安装的时候就在硬件中设置中断号
发送信号
ARP
连接
cpu切换到
tpc头格式
IP头部
网卡 里面有一个中断号
中断号和网卡驱动绑定
cpu
宽展总线中的中断信号线
FCS
报头起始分解符
将通用格式信号转换为数字信息检查FCS是否一致,否则会丢弃 检查接受mac地址是否自己网卡MAC地址一样,不一样会丢弃然后放入缓冲区,然后mac模块工作完成了
TCP头部
connect
read
中断处理程序
连接过程图大致如下
(浏览器、邮件客户端、web服务器、邮件服务器等)
路由器:路由器的各个端口都具有 MAC 地址和 IP 地址路由器根据“IP 地址”判断转发目标。路由器会忽略主机号,只匹配网络号。子网掩码:转换为二进制全是1的是网络号,全是0的是主机号,匹配只匹配网络号就可以以了路由表的子网掩码列只表示在匹配网络包目标地址时需要对比的 比特数量,也就是哪些是网络号,哪些是主机号路由器的端口都具有MAC地址,只接收与自身地址匹配的包, 遇到不匹配的包则直接丢弃。信号->网线接口->phy->mac检查mac地址,匹配丢掉mac头->接收缓冲区->根据ip头内的目标和路由表内的子网掩码做匹配,如果为同一网段,说明匹配成功,找到对应的gateway(也就是路由下一个转发的设备),然后找到对应的端口或者叫接口,这个就是发送数据包的对应网卡,由此网卡进行发送操作,mac头填写下一个mac地址,发送方mac地址为对应网卡的Mac地址,通过arp协议来找打gateway ip对应的mac地址,ip层来添加mac头,更新ip头ttl值,然后进入该网卡的mac模块-->phy->网线发送出去找不到匹配路由的时候,走默认路由路由表中子网掩码为 0.0.0.0 的记录表示“默认路由在发送包之前还会进行下面的操作:1、TTL字段表示包的有效期,包每经过一个路由器的 转发,这个值就会减1,当这个值变成0时,就表示超过了有效期,这个 包就会被丢弃。这个机制是为了防止包在一个地方陷入死循环。如果路由表中的转发 目标都配置正确,应该不会出现这样的情况,但如果其中的信息有问题, 或者由于设备故障等原因切换到备用路由时导致暂时性的路由混乱,就会 出现这样的情况 ,发送方在发送包时会将TTL设为64或128,也就是说包经过这么多 路由器后就会“寿终正寝”。 现在的互联网即便访问一台位于地球另一侧的服务器,最多也只需要经过几十个路由器,因此只要包被正确转发,就可 以在过期之前到达目的地。2、通过分片功能拆分大网络如果网络包超过该路由器的MTU,就会进行包的拆分,(如果ip头内设置了不能进行分片,就会icmp给发送方告知错误),出了mac头和ip头,剩下的部分对于ip模块来说,都是属于数据,所以剩下tcp头和数据都会进行一起拆分,然后加上ip头和mac,并标志相同的分片id。在发送出去。发送过程:路由器判断下一个转发目标的方法如下。 ● 如果路由表的网关列内容为IP地址,则该地址就是下一个转 发目标。 ● 如果路由表的网关列内容为空,则 IP 头部中的接收方 IP 地址 就是下一个转发目标。 路由器也会使用 ARP 来查询下一个转发目标的 MAC 地址路由器也有ARP缓存,因此首先会在ARP缓存中查询,如果 找不到则发送ARP查询请求。 ip层本身没有传输功能,传输是由以太网来完成的,是mac地址。路由器是基于IP设计的,而交换机是基于以太网设计的,因 此IP与以太网的关系也就是路由器与交换机的关系
驱动程序
调用
协议栈
网卡驱动
网卡驱动程序控制网卡
对应的网卡缓冲区
放入
网络包
0 条评论
下一页