Linux | 计算机网络

网络

端口号

www的端口:80
ftp的端口:20和21

netstat、路由

  1. netstat:显示 网络 状态,linux下可以得知整个 Linux 系统、本机各端口的网络情况,查看当前网络连接、查看主机的连接状态,一般用于检验本机各端口的网络连接情况,包括网络地址信息,网络的连接状态,网络的子网掩码、套接口使用情况、路由、接口、协议(TCP等)【是一个监控TCP/IP网络的非常有用的工具】等等,通过命令 netstat -ie ,效果和ifconfig一样】
    -a (all)显示所有选项,默认不显示LISTEN相关
    -t (tcp)仅显示tcp相关选项【查看TCP连接】
    -u (udp)仅显示udp相关选项
    -n 拒绝显示别名,能显示数字的全部转化成数字。
    -l 仅列出有在 Listen (监听) 的服務状态
    -p 显示建立相关链接的程序名
    -r 显示路由信息,路由表
    -e 显示扩展信息,例如uid等
    -s 按各个协议进行统计
    -c 每隔一个固定时间,执行该netstat命令。

  2. 下面那些命令可以用来查看Linux主机的默认路由(routenetstat

    young@young-Lenovo-G470:~$ route
    内核 IP 路由表
    目标            网关            子网掩码        标志  跃点   引用  使用 接口
    default         172.28.234.1    0.0.0.0         UG    0      0        0 wlan0
    172.28.234.0    *               255.255.254.0   U     9      0        0 wlan0
    young@young-Lenovo-G470:~$ netstat -route
    内核 IP 路由表
    目标            网关            子网掩码        标志  跃点   引用  使用 接口
    default         172.28.234.1    0.0.0.0         UG    0      0        0 wlan0
    172.28.234.0    *               255.255.254.0   U     9      0        0 wlan0
    young@young-Lenovo-G470:~$ 
    
    • linux下侦测主机到目的主机之前所经过的路由的命令:traceroute
    • route命令用来显示目前本机路由表的内容,并且还可以针对路由表中的记录来进行相应的添加、删除修改等操作。
      • Linux 修改路由的命令是(route
  3. tracert命令用来探测路由经过,是Windows 路由跟踪实用程序,可以用于确定 IP 数据包访问目标时所选择的路径。

TCP

  1. 在linux编程中,哪个TCP的套接字选项与nagle算法的开启和关闭有关?TCP_NODELAY

    当有一个TCP数据段不足MSS,比如要发送700Byte数据,MSS为1460Byte的情况。nagle算延迟这个数据段的发送,等待,直到有足够的数据填充成一个完整数据段。也许有人会问,这有什么影响呢?没有太大的影响,总体上来说,这种措施能节省不必要的资源消耗。但是要发送的总体数据很小时,这种措施就是拖后腿了。比如,用户请求一个网页,大约十几KB的数据,TCP先发送了个数据包,剩下几百字节一直不发送,要等到另一个RTT才发送,这时候前面发送数据的ACK已经返回了。这样的用户体验是很不好的。 所以,现在很多服务器都选择主动关闭nagle算法,因为带宽够大,资源消耗不是问题,速度反而是个大问题。
    从上述描述中,禁用 nagle,实质就是不在延迟 TCP_NODELAY

  2. 关于 Linux 系统上同一个程序的多个进程实例共享一个 TCP 监听端口的说法,哪个不正确?:每个进程分别绑定一次, 但只有最后一个调用的进程才能收到数据。

    每个进程都使用SO_REUSEPORT选项,然后绑定同一个地址和端口
    每个进程分别绑定不同的网卡地址的同一端口
    第一个进程先绑定到监听地址端口, 然后 fork 子进程共享使用

  3. D是竞争调度的结果,而不是最后调用的进程收到数据。
    A使用SO_REUSEPORT,绑定统一地址和端口。
    B分别绑定 不同的网卡地址的同一端口,TCP的四元组并不冲突。
    C使用fork创建子进程共享,也没有问题。

修改/etc/sysctl.conf如下哪项参数可以开启Linux流量转发功能(net.ipv4.ip_forward = 1

ip

  1. 有一个文件ip.txt,每行一条ip记录,共若干行,已排好序,下面哪个命令可以实现“统计出现次数最多的前3个ip及其次数”?(uniq -c ip.txt | sort -nr | head -n 3

  2. 在Linux主机上完全安装了RHEL5,这时系统会默认安装DHCP服务器软件包,下面关于DHCP服务器的配置文件描述正确的是( DHCP服务器的配置文件为/etc/dhcpd.confDHCP服务器的配置文件默认是不存在的,需要手工创建

  3. Linux 系统中DHCP 服务器的服务程序是dhcpd,配置文件是dhcpd.conf,如果在该配置文件中包括如下配置内容:
    Subnet 192.168.2.0 netmask 255.255.255.0 {
    range 192.168.2.100 192.168.2.200 ;
    }
    关于以上配置内容,说法正确的是(对子网“192.168.2.0/24”中的主机进行动态地址分配在子网中用于动态分配的IP 地址数量为101 个

  4. server-name:通知DHCP客户服务器名称;
    fixed-address分配给客户端一个固定的IP地址

    • 在 dhcpd.conf 中用于向某个客户主机分配固定 IP 地址的参数是(fixed-address

filename:开始启动文件的名称,应用于无盘工作站;
hardware:指定网卡接口类型和MAC地址。
在Red Hat Linux系统中,DHCP服务器可以提供的服务包括( 提供DNS、网关信息为特定客户机提供固定IP地址为主机提供动态的IP地址

  1. RHEL5系统安装DHCP服务器软件包后(系统中存在配置文件“/etc/dhcpd.conf”

你可能感兴趣的:(计算机网络,Linux,Ubuntu学习,linux,计算机网络,网络)