作用:负责数据能够从发送端传输接收端
再谈端口号
端口号(port)标识了一个主机上进行通信的不同的应用程序
在TCP/IP协议中,用“源IP”,“源端口号”,“目的IP”,“目的端口号”,“协议号”这样一个五元组来标识一个通信(可以通过netstat -n查看)
端口号划分
0 - 1023:知名端口号,HTTP,FTP,SSH等这些广为使用的应用层协议,它们的端口号是固定的
1024 - 65535:操作系统动态分配的端口号,客户端程序的端口号,就是由操作系统这个范围分配的
认识知名端口号(Well-Know Port Number)
有些服务器是非常常用的,为了使用方便,人们约定一些常用的服务器,都是用以下这些固定的端口号
ssh,22
ftp,21
telnet,23
http,80
https,443
执行下面的命令,可以看到知名端口号
cat /etc/services
自己写程序时,要避开这些端口号
两个问题
1.一个进程是否可以bind多个端口号
2.一个端口号是否可以被多个进程bind
netstat
用来查看网络状态的重要工具
语法:netstat [选项]
功能:查看网络状态
常用选项:
- n 拒绝显示别名,能显示数字的全部转化为数字
- l 仅累出有在listen(监听)的服务状态
- p 显示建立相关连接的程序名
- t (tcp)仅显示tcp相关选项
- u (udp)仅显示udp相关选项
- a (all)显示所有选项,默认不显示LISTEN相关
pidof
在查看服务器的进程id时非常方便
语法:pidof [进程名]
功能:通过进程名,查看进程id
杀掉所有某个名字进程的常规方法,httpd举例:
将查找内容作为参数输入到kill -9后面
可以直接用pidof批量杀死进程
协议的大致内容(下三层)
1.报头和有效载荷如何分离,有效载荷应该交给哪一个上层协议(对应的协议字段、方案)
2.认识报头
3.该协议周边的问题