网络犹如城市街道,运行着各种协议和信息。我们一直努力让产品和服务及时、准确的呈现在用户面前。每年的春运12306抢票你是否刷新过无数次,因没能抢到票而苦恼。
电商促销活动满满的购物车在提交的时候显示物品已售光,是不是有一种想摔手机的冲动。
量化投资为缩短网络传输代价取得目标收益,很多公司都会租用距离交易所近的网络机房
OSI体系、TCP/IP体系对比:
1、OSI:开放系统互连基本参考模型,由国际化标准组织ISO提出的一个在世界范围内互连成网的标准框架它具有七层协议体系结构(应用层、表示层、会话层、传输层、网络层、数据链路层、物理层),理论复杂不实用。
2、TCP/IP:具有四层体系结构,网络接口层、网际层IP、传输层(TCP或者UDP)、应用层,更贴近我们的实际应用。
一帧以太网数据包的格式:
1、数据链路包头:14字节
2、IP层包头:20字节
3、TCP/UDP包头:20字节
4、数据
TTL生存时间是IPv4包头的一个8 bit字段最大值为255 ,这个生存时间是由源主机设置初始值但不是存的具体时间,而是存储了一个ip数据报可以经过的最大路由数,每经过一个处理他的路由器此值就减1,当此值为0则数据报将被丢弃,同时发送ICMP报文通知源主机。
TCP/IP装包过程:当应用程序应用TCP传输数据时,数据被送入协议栈中,然后逐个通过每一层都被当做一串比特流送入网络。其中每一层对收到的数据都要加一些首部信息(有时还需要增加尾部信息)。TCP传给IP的数据单元称作TCP报文段或简称TCP段(TCP segment)。IP传给网络接口层的数据单元称作IP数据报(IP datagram)。通过以太网传输的比特流称作帧(Frame)。以太网数据帧的物理特性是长度必须在46~1500个字节之间。
1、在建立连接之前,B先创建TCB(传输控制块),准备接受客户进程的连接请求,处于LISTEN(监听)状态
2、A首先创建TCB,然后向B发出连接请求,SYN置1,同时选择初始序号seq=x,进入SYN-SEND(同步已发送)状态
3、B收到连接请求后向A发送确认,SYN置1,ACK置1,同时产生一个确认序号ack=x+1。同时随机选择初始序号seq=y,进入SYN-RCVD(同步收到)状态
4、A收到确认连接请求后,ACK置1,确认号ack=y+1,seq=x+1,进入到ESTABLISHED(已建立连接)状态。向B发出确认连接,最后B也进入到ESTABLISHED(已建立连接)状态。
1、A发送一个FIN,用来关闭A到B的数据传送,A进入FIN_WAIT_1状态。
2、B收到FIN后,发送一个ACK给A,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),B进入CLOSE_WAIT状态。
3、B发送一个FIN,用来关闭B到A的数据传送,B进入LAST_ACK状态。
4、A收到FIN后,A进入TIME_WAIT状态,接着发送一个ACK给B,确认序号为收到序号+1,B进入CLOSED状态,完成四次挥手。
Traceroute
(Unix)/Tracert (Windows) :通过该命令我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径,判断网络是否出现故障。
TCP/IP缓存区:是为了解决不同网络层次之间的速度不匹配问题。每个TCP套接字都有一个发送缓冲区,用SO_SNDBUF表示其大小。在发送方和接收方的数据链路层分别有一个发送缓冲区和接收缓冲区。应用层进程将发送内容交给TCP套接字中的缓冲区,然后TCP又最终将发送内容交到数据链路层的缓冲区中。发送方的数据通过数据链路到达接收方的缓冲区。其中接收方的缓冲区要能容纳下发送方的数据,采取的措施是自定义网络数据包编解码和流量控制。
基于TCP/IP的互联网产品越来越多,常见的问题比如长短连接、网络堵塞、流量控制、网络性能、网络抖动、同步、异步、网络攻击、网络安全等。