网络通信基础知识(tcp/ip)

入门书籍:图解服务器端网络架构.pdf

一、TCP/IP协议栈中的各层的作用

1.物理层:解决的是传输0和1的问题

2.链路层:解决的是数据从源地址到目的地址传输的问题,通过MAC地址在自己的局域网内,以及通过L2交换机维护MAC地址和网口的映射表,来确保子网的数据有序的传输。

问题:既然局域网是用MAC地址就可以通信,为什么还需要IP地址? 局域网用MAC通讯为什么还要IP?

   可以这么理解,只用MAC地址是完全可以在局域网通信,但一般的电脑设备没有提供只使用MAC地址来传输数据的“口子”,电脑最终还是要连接互联网的,要连外网必须使用IP地址,索性使用应用层一层一层向下调用,给用户留出统一的接口。

3.网络层:通过IP地址解决的是跨子网之间的数据传输,L3交换机维护路由表。

4.传输层:TCP和UDP协议,端口区别进程。

5.应用层:http ftp

二、七层/四层协议

网络七层协议

2.IP包

3.TCP/UDP包

4.TCP的建立与断开(三次握手与四次挥手)

5.TCP状态机

 6.keepalive机制

Linux下通过下面参数设置keepalive参数:

cat /proc/sys/net/ipv4/tcp_keepalive_time
cat /proc/sys/net/ipv4/tcp_keepalive_intvl
cat /proc/sys/net/ipv4/tcp_keepalive_probes

默认该功能没有开启,需要做一下修改/etc/sysctl.conf

net.ipv4.tcp_keepalive_time=7200
net.ipv4.tcp_keepalive_intvl=75
net.ipv4.tcp_keepalive_probes=9

sysctl -p 使其生效,sysctl -a | grep keepalive 命令来查看。

然后通过setsockopt设置tcp的keepalive.

#include <sys/socket.h>

int setsockopt(int socket, int level, int option_name, const void *option_value, socklen_t option_len);

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值