马老师的tcp/ip直播课知识记录

OSI七层模型:

应用层:准备某种协议的数据,在发送前,通过内核完成和别人的连接

表示层

会话层

传输控制层

网络层

数据链路层

物理层

TCP/IP协议:

应用层:准备某种协议的数据,在发送前,通过内核完成和别人的连接

传输控制层:TCP(面向连接的、可靠的的传输协议)、UDP

网络层:数据包怎么走,,找到路由吓一跳,点:ip、route

             ipv4(点分字节)

            ipaddr:

            netmask子网掩码:  ip和netmask做&运算 得到网络号      ip的最后一位是主机号

                  route -n 显示kernel ip routing table

                 ping www.baidu.com 本地ip访问baidu经过了哪些路由

                       baidu的ip是220.181.38.149

                如果destination匹配,看gateway,如果全是0就标识不需要吓一跳,直接通过网卡发出去就可以

          arp -n          arp是链路层的协议

        arp -d 192.168.150.2 && curl www.baidu.com

      tcpdump --n -i eth0 port 80 or arp抓包上面的

            gateway网关:

数据链路层

物理层

面向连接的:双方经过三次握手后开辟资源后建立连接

可靠:确认机制

三次握手:

CS:SYN

SC:SYN + ACK

SC:ACK

三次握手后开始数据传输,关闭连接(四次分手)

TCP默认不是场链接,内核通过keepalive设置

当S挂掉后,c端的连接不会立即断开,因为C不知道S会挂掉,超时连接

四次分手:双方要销毁资源、断开连接

1.C fin

2.S fin+ack

3. S fin

4. C ack

测试四次分手 curl www.baidu.com:80,完成了三次握手+数据传输+四次分手

抓包:tcpdump -nn -i eth0 port 80

tcpdump -nn -X -i eth0 port 80

socket:

四元组:ip:port + ip:port  保证连接的唯一性

什么是端口号:

一台计算机只能分配65535个port,不是,可以修改的

C10K问题

负载均衡:

LVS四层 :不会和客户端建立三次握手

NIGINX七层:一个webserver,和客户端建立连接,经过三次握手

粘包拆包问题:

nc www.baidu.com 80 应用层的程序发起连接

GET / HTTP/1.0

nc localhost 6379

keys *

set k1 hello

keys *

*1   几个kv

$2   几个字节

k1

netstat -natp

猜你喜欢

转载自blog.csdn.net/qq_33436466/article/details/107943681