linux网络编程必备

协议

从应⽤的⻆度出发,协议可理解为“规则”,是数据传输和数据解释的规则 数据的发送⽅和接收⽅要严格
遵照这些规则(这些规则肯定是之前就定好的) 例如:第⼀次发送⽂件名,第⼆次传输⽂件⼤⼩,第三
次发送⽂件内容 ---- FTP 协议的雏形 试想:如果双⽅不遵照这个规则,就会出现数据混乱
网络

网络程序设计模式

C/S模式
传统的网络应用设计模式,客户机(client)/服务器(server)模式。需要在通讯两端各自部署客户机和服务器来完成数据通信。
B/S模式
浏览器(broswer)/服务器(server)模式。只需在一端部署服务器,而另外一端使用每台PC都默认配置的浏览器即可完成数据的传输。

网络分层结构

七层模型:OSI/RM开放互联模型(理论上的标准,实现的)
应用层:应用层的协议APP
表示层:将计算机能识别的二进制 转换成 人能识别的数据
会话层:分析数据的通信状态
传输层:进程和进程间的通信(端口信息)
网络层:主机与主机之间的通行(IP地址)
数据链路层:收发的完整的帧数据(在网络上独立传输)mac地址(设备地址)
物理层:不是物理设备,而是物理设备上的接口类型、电流强弱

四层协议:TCP/IP协议层
应用层:应用层的协议 FTP、Telnet、HTTP
传输层(运输层):进程和进程间的通信(端口信息)TCP、UDP
网络层:主机与主机之间的通行(IP地址)IP、ICMP
链路层:收发的完整的帧数据(在网络上独立传输)mac地址(设备地址)ARP RARP
1、TCP和UDP的区别
TCP 面向链接 可靠 排序 检错 失败重传 不支持广播
UDP 无连接 不排序 不检错 不重传 快 支持广播

2、 socket()创建udp套接字 的三个参数分别是啥?
AF_INET, SOCK_DGRAM , 0

3、 创建TCP套接字 形参是啥?
AF_INET, SOCK_STREAM, 0

4、你描述一下udp客户端的编程流程
1).创建socket
socket
2).绑定一个本地地址结构(客户端非必须,服务器必须)
bind
3).接收/发送udp数据报文
sendto/recvfrom
4).关闭连接

5、 描述一下 大端和小端
小端格式:将低位字节数据存储在低地址
大端格式:将高位字节数据存储在低地址

6、 描述一下 bind使用的注意点
1)在connect()或listen()调用前使用。当用socket()创建套接口后,
2) 第二个参数是一个指向特定协议的地址结构的指针
3) bind只能绑定自身的IP
4) 服务器必须要绑定, 客户端非必须

7、 描述一下sendto注意的点
1)通过to和addrlen确定目的地址
2) 可以发送0长度的udp数据包
3)成功则 返回 发送数据的字符数
4) 传入地址结构地址时需要用struct sockaddr *进行强制转换

8、 recvfrom 功能 以及注意点
1)接收UDP数据,并将源地址信息保存在from指向的结构中(通过from和addrlen参数存放数据来源信息)
2)rom和addrlen可以为NULL, 表示不保存数据来源
3)成功返回接收到的字符数
4) 默认情况下没有接收数据 会阻塞

9、 192.168.1.0/24 他的网段地址 以及 广播地址分别是啥?
网段:192.168.1.0 广播:192.168.1.255

主机ID全为0的IP地址 表示 网段地址。
主机ID全为1的IP地址 表示该 网段的广播地址。

10、广播地址的分类
定向广播地址和受限广播地址

11、 192.168.1.0/24的受限广播和定向广播分别是啥?
定向:192.168.1.255 受限:255.255.255.255

12、 告诉梁哥ifconfig作用有那些?
设置和显示Linux内核中网络接口的网络参数。 配置网卡的IP信息
相关命令:
ifconfig eth0 down关闭网卡
ifconfig eth0 up激活网卡

13、 listen创建的链接队列 分为几部分 部分之间如何切换的
将套接字由主动修改为被动。
使操作系统为该套接字设置一个连接队列,用来记录所有连接到该套接字的连接
两部分 完成连接 未完成连接 完成三次握手后切换

14、 tcp套接字 中监听套接字和 已连接套接字的区别
监听套接字可以接受来自客户端的连接请求。
已连接套接字 可以被用来与客户端进行通信。

15、 tcp客户端的编程流程
1)创建一个TCP套接字
2)bind绑定(可选的)
3)connect链接服务器
4)给服务器发送数据 send
5)接收服务器数据 recv
6)关闭套接字

16、 tcp服务器的编程流程
1)创建一个tcp监听套接字
2)使用bind函数 给监听套接字 绑定固定的ip以及端口
3)使用listen创建连接队列 主动变被动
4)使用accpet函数从连接队列中 提取已完成的连接 得到已连接套接字
5)获取客户端的请求 以及 回应客户端
6)关闭已连接套接字
7)关闭监听套接字

17、 TCP和UDP 那个支持故广播 那个支持多播
UDP 支持广播多播

18、 tcp 应用层为啥不能传送 0长度数据包
0长度数据被用作对方套接字关闭

19、 tcp udp那个协议可以传送0长度数据包
udp

20、 字节数转换函数有哪些
htons htonl
ntohs ntohl
inte_pton inte_ntop

21、 DHCP协议是干啥的?
动态主机配置协议,自动地为子网的主机分配可用IP地址

FTP协议: 文件传输协议

22、 tcp udp请问 哪一个是传输控制协议
tcp
TCP 面向链接 可靠 排序 检错 失败重传 不支持广播 UDP 无连接 不排序 不检错 不重传 快 支持广播
1、集线器、交换机、路由器的区别
交换机:数据链路层、独享宽带,路由器:网络层、I连接不同的网络、共享宽带,不同网段通信的桥梁,集线器:物理层、广播发送、共享带宽
2、谈谈对三层交换机的理解
核心层在链路层,只是具备第3层(网络层)特定功能, VLAN虚拟局域网划分
核心层在链路层,只是具备第3层(网络层)特定功能, VLAN虚拟局域网划分
3、主机A如果想和另一个局域网的主机B通信,请问主机A应该做哪些配置
4、ifconfig的功能?
设置网卡的IP\mac\netmask地址
设置本地回环lo地址
激活网卡(up)、关闭网卡(down)
5、TCP、IP、UDP、ARP、HTTP、TFTP、ICMP的中文名称
TCP(Transport Control Protocol)传输控制协议
IP(Internetworking Protocol)网间网协议
UDP(User Datagram Protocol)用户数据报协议
ICMP(Internet Control Message Protocol)互联网控制信息协议
SMTP(Simple Mail Transfer Protocol)简单邮件传输协议
SNMP(Simple Network manage Protocol)简单网络管理协议
FTP(File Transfer Protocol)文件传输协议
ARP(Address Resolation Protocol)地址解析协议
HTTP 超文本传输协议
TFTP 简单文件传送协议
6、主机能ping局域网所有主机,但是ping不通b

没有设置网关
没配置路由表
没有路由表的“下一跳”
防火墙阻止其他网段信息
7、描述DHCP协议
动态获取IP
8、网络的四层结构?
数据链路层、网络层、传输层 、应用层
9、网络的七层结构
物理层 数据链路层 网络层 传输层 会话层 表示层 应用层
10、学过的大小端转换函数有哪些
htonl(),htons(),ntohl(),ntons()
11、TCP/IP协议包含TCP协议和IP协议?
错,tcp/ip是个协议族

12、TCP的三次握手是发生在哪两个函数之间?
客服端:socket bind(非必须) connect send recv close
服务器:socket bind(必须) listen accpet recv send close
connect和listen
13、描述一下你认识的组播
一个发送者多个接受者
基于udp协议
D类
14、进程和进程通信 是属于 网络的那一层功能?
传输层
15、主机和主机间通信 是属于 网络的那一层功能?
网络层
16、程序和程序 之间通信 是属于 网络的那一层功能?
应用层

17、设备和设备之间通信属于哪一层?
链路层

18、tcp的四层以及7层的结构 每一层的功能 以及协议
19、tcp和udp的区别?
TCP 面向链接 可靠 排序 检错 失败重传 不支持广播
UDP 无连接 不排序 不检错 不重传 快 支持广播

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值