网络编程知识概念整理

1.http是干什么的,中文名是什么,主要用在什么地方?
http是从万维网服务器传送超文本到本地浏览器的传送协议
超文本传输协议
主要工作于客户端-服务端架构上
浏览器作为http客户端通过url向web服务器发送请求,web服务器接收请求后向客户端发送响应信息

2.http协议的特点
(1)简单快速:只需要传请求方法和路径
(2)灵活:允许传输任意类型的数据对象
(3)无连接:每次连接只处理一个请求处理完后断开连接,采用这种方式可以节省传输时间
(4)无状态:对于事物处理没有记忆能力,如果需要之前数据则需要重传,如果不需要之前信息速度就快
(5)基于tcp协议

3.什么是mac地址?
mac地址是一个硬件地址,主要有数据链路层负责,用来定义网络设备位置是唯一的

4.http请求报文的格式是什么?
请求行,请求头部,消息报文

5.应用层的协议是什么?
DNS,HTTP,HTTPS,FTP,SMTP

6.TCP、UDP的区别
1.tcp是面向链接的传输方式,udp是面向对象的传输方式
2.tcp是安全的可靠的,udp是不安全不可靠的
3.tcp保证数据的完整正确性,udp可能丢包
4.tcp保证数据顺序,udp不保证

7.TCP为啥安全可靠?
1.三次握手建立连接
2.四次挥手断开连接
3.通过序列号和确认号保证发送信息的完整,以及超时重传
4.窗口控制(提高传输速度)与高速重发控制/快速重传
如果不使用窗口控制,每一个没收到确认应答的数据都要重发
窗口大小就是无需等待确认而可以继续发送数据的最大值

8.tcp的优缺点,以及相应的应用场景?
优点:
可靠,有三次握手和四次挥手,在传输过程中有确认、窗口、重传、拥塞控制机制
缺点:
慢,效率低,占用系统资源高,易被攻击(有确认机制、三次握手机制容易被利用,实现DOS、DDOS、CC等攻击)
场景:
效率要求相对低,但准确性要求相对高的场景(文件传输,接收邮件,远程登陆)


udp的优缺点,以及相应的应用场景?
优点:
快,因为没有tcp的机制是无状态协议所以漏洞少,但也有一些无法避免的攻击(UDP Flood)
缺点:
不可靠的,没有可靠机制如果网络不好容易丢包
场景:
效率要求高,对准确性要求低的场景(在线视频,网络语音通话)

9.3次握手的过程是怎么样的?
发送方先发syn请求(synsend),接收方回复ack+syn(synrecv),发送方回复ack(同是进入established)
(好比与咱俩打电话,你先问我能听到吗,我回复可以听到,你能听到吗,你回复可以听到)

10.端口号是干什么用的?
端口用于唯一标识主机上的一个应用程序,方便不同应用进程之间的通信

11.网络相关的命令有哪些?
ping:主要探测目的ip是否可达
ifconfig:查看当前活动接口详细信息
route:用于添加、删除、显示路由表的内容
arp:用于添加、删除、显示ARP高速缓存中的内容

12.说一下wireshark,他有哪些功能
wireshark叫网络分析工具,可以截取各种网络数据包,并显示数据包详细信息
通过相应的过滤器使用可以筛选出想要分析的内容(协议过滤,端口号过滤,主机名过滤,数据包内容过滤)

13.epoll和poll的区别
1.poll由链表实现事件机制可以突破1024,而epoll可以达到万级
2.poll事件由内核层传至应用层资源开销大,而epoll直接在内核层
3.poll由自己检测是否有发生的事件,而epoll只用自己接收事件
4.poll只支持水平触发模式,epoll支持水平触发模式和边缘触发模式

14.tcp相比udp为什么是可靠的
1.确认和重传机制
2.数据排序
TCP有专门的序列号SN字段,可提供数据re-order
3.流量控制
窗口和计时器的使用,TCP窗口中会指明双方能够发送接收的最大数据量
4.拥塞控制
四大核心算法组成
“慢开始”“拥塞避免”“快重传”“快恢复”

15.socket编程中服务端和客户端所用到的函数

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值