2020/01/03 03-网络通信和socket

在这里插入图片描述在这里插入图片描述在这里插入图片描述
之前的例子能否换种方式实现,是用的网络路由R1写172网段,R2写192网段

是否可以写成默认路由
在这里插入图片描述
企业访问互联网都是通过默认路由来实现的

在这里插入图片描述
很多情况下路由表记录是通过协议自动生成的

在稍复杂的环境中,路由记录就不是手工添加的,是通过路由协议自动生成的
路由器可以跑一个软件,这个软件自动生成路由记录

路由协议RIP,OSPF,BGP或者思科的emgIp

RIP是根据路由数量来判断路由的优先速度,优先级,经过路由越少,就选择哪条路,经过一样多,就随机选择,但是会根据路由器数量来选择可能并不合理,比如网络速度
在这里插入图片描述OSPF会综合考虑很多因素,比如带宽,如果下面的带宽比较大,就优先选下面的
一般RIP过于简单不用,OSPF在比较大的内部网络用(如中移动),BGP是用于互联网
在这里插入图片描述
netstat比较老,现在可能推荐ss 来代替

n表示数字,t表示tcp协议相关,自己的22端口被8.1链接
在这里插入图片描述在这里插入图片描述
l处于监听状态
在这里插入图片描述在这里插入图片描述
p可以看到进程名称
在这里插入图片描述
查看某个端口是被哪个应用程序占用
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
e显示更详细的信息
在这里插入图片描述
现在看到的时候正在监听的,链接的看不出来,-a,代表各种状态都可以在这里插入图片描述
UDP协议没有标记位,就没有状态,TCP有有限状态机
在这里插入图片描述
可以查看当前网卡的统计信息
在这里插入图片描述
MTU是最大传输单元,以太网帧的最大内容,一般都是1500在这里插入图片描述
当前状态是没有丢包的
在这里插入图片描述
现在找台机器ping多点
在这里插入图片描述
watch是一秒中执行一次命令

在这里插入图片描述
RX-ERR RX-drp没有丢包现象
在这里插入图片描述在这里插入图片描述
ifconfig命令逐渐淘汰了,ip命令是子命令组合而成
在这里插入图片描述
也可以查看路由表
在这里插入图片描述在这里插入图片描述
ip addr 也可以添加地址 在这里插入图片描述在这里插入图片描述
删除地址
在这里插入图片描述
flush相当于把地址全删除了
eth0:0相当于给网卡起子名称

在这里插入图片描述在这里插入图片描述
就多了个eth0:1,起个网卡别名在这里插入图片描述
del可以删除在这里插入图片描述
真正存到系统中还需要修改配置文件,上面都是临时的
在这里插入图片描述
ss效率更高
在这里插入图片描述
dport目标端口,sport源端口
在这里插入图片描述在这里插入图片描述
centos6,7修改主机名方式不同
在这里插入图片描述在这里插入图片描述
centos7有个专门的命令hostnamectl
在这里插入图片描述在这里插入图片描述在这里插入图片描述实际上就是一个脚本,变量赋值
DEVICE设备 代表针对哪个网卡设置的
TYPE类型,默认就是以太网,可以不写
UUID 表示唯一编号,也可以不写(加UUID是表示,这个配置文件是唯一的)
ONBOOT=yes 是表示开机的时候,这个网卡启用的(默认也是启用的,no表示网卡不启用=禁用
NM_CONTROLLED
BOOTPROTO=dhcp 表示这个网卡是自动获取还是手工指定的,(dhcp通过dhcp自动获取;static和none都可以表示IP是手工指定的(linux作为服务器,一般都是要指定的,都要修改为static或者none))
DEFROUTE
IPV4_FAILURE_FATAL
NAME="System eth0 "网卡名字,相当于描述信息
HWADDR = mac地址,必须和你网卡真实的mac地址相匹配,如果写错,将导致整个网卡不可用
PEERDNS
PEERROUTES
LAST_CONNECT

centos7也有新的工具配置网卡
在这里插入图片描述
centos7会对网络设备进行判断命名
1如果是集成网卡就是eno开头
2.外置网卡就是ens
3.根据物理接口位置,enp
4.识别不出来,enx,(拿mac地址命名)

如果企业里,centos6,7混用就可以对配置文件进行修改
在这里插入图片描述在这里插入图片描述
这一段加上就影响了网卡命名方式
在这里插入图片描述
要生成对应的grub文件才可以,生成的文件才是后面要修改的文件
在这里插入图片描述
加上这一段关键字
在这里插入图片描述
可以通过命令来间接修改
在这里插入图片描述
这个命令读取下面的来间接生成grub2/grub。cfg
在这里插入图片描述
这个命令直接打只是在屏幕上输出,不会写入文件,需要-o或者重定向在这里插入图片描述这样centos6,7命名方式就一样了,管理起来方便 在这里插入图片描述在这里插入图片描述
nmcli也是icentos7的新工具
eth1网卡对应的配置名称时wired connection 1

在这里插入图片描述
可以改个名字
在这里插入图片描述
查看eth1网卡的设置
在这里插入图片描述
ipv4.method 自动获取的
在这里插入图片描述
可以进行修改
在这里插入图片描述
改完之后确实显示出来
在这里插入图片描述
up重新加载,其实改的还是网卡配置文件在这里插入图片描述在这里插入图片描述在这里插入图片描述
改成DHCP可以直接重启 在这里插入图片描述
用不到的配置文件可以删除

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
nslookup是测dns解析的
在这里插入图片描述在这里插入图片描述
ftp匿名用户,密码随便敲在这里插入图片描述在这里插入图片描述
下载login文件
在这里插入图片描述
links是个浏览器,dump只抓取文字
在这里插入图片描述
source查看源码

http

在这里插入图片描述在这里插入图片描述在这里插入图片描述
OSI模型分7层,tCP/IP分四层(应用层,传输层,互联网层,网络接口层)
ssh,tcp协议,mysql协议,都属于应用层,
既然是应用层协议,那就有应用层的报文头部,每一层都有每一层的报文头部,应用层也有应用层的报文头部,tcp/ip协议的报文头部,数据链路层的报文头部,
tcp的3次握手,四次挥手,
http协议也有自己的报文头部
http默认使用TCP的80端口
FTP ,21端口,20(并不固定)

在这里插入图片描述跨网络都涉及到2个进程如何通讯,一般都用tcpip协议,所以一般都是基于套接字进行通讯,
两个主机跨网络如何找对对方,就需要套接字socket
套接字就是ip地址+协议端口
通过ip地址可以找到网络中唯一的设备,通过端口就确定了在这台主机上的应用程序地址(不会有两个进程使用同一个端口号),这两个要素组合成socket
从外面浏览器如果访问京东网站,就需要访问京东对应的套接字
浏览器输入www.jd.com
前端利用dns解析把www.jd.com解析成地址,
利用地址找到京东网站的主机,找到主机,因为写的是http://
tcp/ip协议的默认端口号是80,通过ip地址再加上tcp的端口号80就找到了web服务器地址
53是dns服务端口,tcp,udp

在这里插入图片描述每个引用程序,需要有一个socket套接层,这个套接层,把不同的应用程序加以区分(协议和端口号,比如tcp的80端口(到达套接字,就知道是给tcp还是mysql的进程))在这里插入图片描述
socket domain,你需要哪种地址服务
AF_INIT :IPV4
AF_INET6:IPV6
AF_UNIX:代表同一台机器不同程序间通讯使用的

在这里插入图片描述
socket 在进行编程的时候,用了一些相关概念,
Domain主要特指协议类型,是IPV4,还是IPV6协议
还有一种是叫UNIX的Domain,是正在同一主机不同进程上使用的,比如mysql的粉色文件
跨网络就不能使用socket文件了,就需要用ipv4或ipv6的跨网络domain 了
在同一台机器上就没必要像在网络中传输一样,解封装,一般都是用.sock文件,来进行通讯

在这里插入图片描述
在linux有些地方可以看到socket文件,粉色s开头
在这里插入图片描述
到底用哪种协议
需要可靠就TCP
效率高就UDP

在这里插入图片描述socket类型
三次握手,四次挥手
tcp协议是可靠的,带有相应的标记位fin,ack、数据包的序列号,确认号
udp协议是不可靠的

在这里插入图片描述服务器端会打开socket对象
soscket创建好后,会绑定相关协议,包括端口(比如走http的就绑定80)
绑定好后,就打开处于监听状态
监听好后,客户端想要链接,也打开socket,这个socket就不需要绑定端口
直接连接(写上服务器地址和端口号)connect函数,发送请求
服务器端收到请求就会对客户端进行响应
可以发送数据也可以写数据
客户端也一样,双方都能写和读数据
前面的过程分服务器端和客户端,
一般服务器和客户端建立连接,就谈不上服务器端和客户端了
因为服务器端和客户端都可以发数据和收数据

在这里插入图片描述套接字底层调用的一些功能在这里插入图片描述
tcp服务器端的一个程序,使用pythonn写的
socket 创建资源对象
bind绑定

客户端代码
在这里插入图片描述在这里插入图片描述
修改地址
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
再找另外的主机当客户端
在这里插入图片描述
这句话其实是从服务器端s收到的
在这里插入图片描述在这里插入图片描述
以wang的身份跑
在这里插入图片描述在这里插入图片描述在这里插入图片描述
改成小的端口号在这里插入图片描述在这里插入图片描述
root用户运行代码没问题
在这里插入图片描述在这里插入图片描述
使用普通用户就不行,1023一下都是特权端口,只有root才能使用
在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值