地下城钓鱼网站如何做网站建设需要几个部门

当前位置: 首页 > news >正文

地下城钓鱼网站如何做,网站建设需要几个部门,杭州市前10电商代运营公司,网络推广网站河南文章目录 1.再看四层2.端口号2.1引入linux端口号和进程pid的区别端口号是如何生成的传输层有了pid还设置端口号端口号划分 2.2问题2.3netstat 3.UDP协议3.0每学一个协议 都要讨论一下问题3.1UDP协议3.2谈udp/tcp实际上是在讨论什么#xff1f; 1.再看四层 2.端口号 端口号(Po… 文章目录 1.再看四层2.端口号2.1引入linux端口号和进程pid的区别端口号是如何生成的传输层有了pid还设置端口号端口号划分 2.2问题2.3netstat 3.UDP协议3.0每学一个协议 都要讨论一下问题3.1UDP协议3.2谈udp/tcp实际上是在讨论什么 1.再看四层 2.端口号 端口号(Port)标识了一个主机上进行通信的不同的应用程序。 在TCP/IP协议中, 用 “源IP”, “源端口号”, “目的IP”, “目的端口号”, “协议号” 这样一个五元组来标识一个通信(可以通过netstat -n查看); 网络通信本质也是进程间通信 一个进程 两个画面 两个端口号 2.1引入 linux端口号和进程pid的区别 在Linux系统中端口号Port Number和进程IDProcess ID简称PID是两个不同的概念它们各自在操作系统和网络通信中扮演着不同的角色。以下是它们之间的主要区别 端口号Port Number 定义在网络通信中端口号用于标识一个特定的进程或服务在特定的传输协议如TCP或UDP上的逻辑连接点。 作用当客户端应用程序想要与服务器上的某个服务进行通信时它需要使用服务器的IP地址和端口号来指定目标位置。服务器应用程序则在特定的端口上监听来自客户端的连接请求。 范围对于TCP和UDP协议端口号的范围通常是从0到65535。其中0到1023之间的端口号被称为“知名端口”Well-Known Ports通常用于系统服务或标准服务如HTTP使用80端口HTTPS使用443端口等。 唯一性在同一台计算机上不同的服务或进程可以使用不同的端口号来区分彼此。但是多个进程不能同时绑定到同一个端口上除非它们使用了某种形式的共享或代理机制。 进程IDProcess ID 定义在Unix和Linux系统中每个进程都有一个唯一的数字标识符称为进程IDPID。 作用PID用于在操作系统中唯一地标识和跟踪正在运行的进程。系统管理员和程序员可以使用PID来查询、监控、控制或终止进程。 范围PID是一个非负整数其范围取决于操作系统的具体实现。在大多数现代Unix和Linux系统中PID的范围通常是从1到一个相对较大的数字如32768或更高。 唯一性在任何给定的时间点同一台计算机上的每个进程都有一个唯一的PID。但是当进程终止并被新进程替换时旧的PID可能会被新进程重新使用。 总结 端口号主要用于网络通信用于标识服务或进程在网络上的位置。 PID主要用于在操作系统中唯一地标识和跟踪正在运行的进程。 虽然端口号和PID都是唯一的标识符但它们的上下文、用途和范围是不同的。 端口号是如何生成的 端口号在Linux系统以及更广泛的网络环境中并非由系统自动生成而是根据网络服务和应用程序的需求进行配置和指定的。以下是一些关于端口号生成和使用的关键点 知名端口Well-Known Ports范围从0到1023的端口号被称为知名端口。这些端口通常由系统服务或标准服务使用例如HTTP使用80端口HTTPS使用443端口等。这些端口号在RFC文档中有明确的规定并且不应被一般的应用程序随意使用。 注册端口Registered Ports范围从1024到49151的端口号被称为注册端口。这些端口是为没有知名端口号的应用程序而预留的并且可以通过IANAInternet Assigned Numbers Authority进行注册。 动态端口Dynamic Ports或私有端口Private Ports范围从49152到65535的端口号被称为动态端口或私有端口。这些端口通常用于客户端应用程序并且在系统启动时并不分配给任何服务。它们可以在需要时被任何应用程序使用。 手动配置在Linux系统中你可以通过编辑配置文件如/etc/services或使用网络管理工具来手动配置端口号。例如当你配置一个Web服务器如Apache或Nginx时你需要指定它应该监听的端口号。 自动选择有些应用程序可能会自动选择一个未使用的端口号。这通常是通过扫描系统上的可用端口并选择一个未被占用的端口来实现的。然而这种方法并不总是可靠的因为可能会有其他进程在同一时间选择了相同的端口号。 使用防火墙和安全策略在配置端口号时还需要考虑防火墙和安全策略。你应该只开放那些确实需要的端口并限制对它们的访问。这有助于减少系统受到攻击的风险。 总的来说端口号的生成和使用是一个需要仔细考虑的过程需要根据你的应用程序和网络环境的需求来进行配置。 传输层 负责数据能够从发送端传输接收端 有了pid还设置端口号 PIDProcess ID进程标识符和端口号在操作系统和网络通信中各自扮演着不同的角色因此它们都是必需的。 PID的作用 PID是操作系统中用于唯一标识一个正在运行的进程的数字。每个正在运行的进程在操作系统中都有一个与之关联的PID。PID对于进程管理和调试非常有用因为它允许用户或系统管理员精确地引用和控制特定的进程。例如如果想要结束一个进程就需要知道它的PID然后使用相应的命令如Unix/Linux中的kill命令或Windows中的任务管理器的“结束进程”选项来结束它。此外PID还可以用于监视进程的状态和性能。 端口号的作用 端口号是在网络通信中使用的一种标识用于区分不同的应用程序或服务。在计算机网络中每个服务或应用程序都可以绑定到一个特定的端口号上使得数据包能够正确地传输到目标应用程序。端口号的主要作用是表示一台计算机中的特定进程所提供的服务。例如Web服务器通常使用80端口来提供HTTP服务FTP服务器通常使用21端口来提供文件传输服务。通过端口号客户端可以准确地找到并连接到目标服务。 PID和端口号之间的主要区别在于它们的应用场景和目的不同。PID是操作系统内部使用的标识符用于管理和控制进程而端口号是在网络通信中使用的标识符用于确定目标应用程序或服务。 此外不是每个进程都有端口号。只有那些需要通过网络进行通信的进程才会绑定到特定的端口号上。而那些只在本地计算机上运行、不需要网络通信的进程则不需要端口号。 因此尽管PID和端口号在各自的领域中都扮演着重要的角色但它们并不能相互替代。有了PID还需要设置端口号是因为它们分别解决了操作系统和网络通信中的不同问题。 端口号划分 0-1023: 知名端口号, HTTP, FTP, SSH等这些广为使用的应用层协议,他们的端口号都是固定的. 1024 - 65535: 操作系统动态分配的端口号. 客户端程序的端口号, 就是由操作系统从这个范围分配的. 认识知名端口号(Well-Know Port Number) 有些服务器是常用的, 为了使用方便, 人们约定一些常用的服务器, 都是用以下这些固定的端口号: ssh服务器, 使用22端口 ftp服务器, 使用21端口 telnet服务器, 使用23端口 http服务器, 使用80端口 https服务器, 使用443 执行下面的命令, 可以看到知名端口号cat /etc/services 不是知名端口号的“知名端口号” mysql–3306 redis。。。 2.2问题 两个问题 一个进程是否可以bind多个端口号?一个端口号是否可以被多个进程bind? 针对这两个问题我们可以从以下几个方面来解答 一个进程是否可以bind多个端口号 是的一个进程可以bind多个端口号。在进程内部可以创建多个线程thread每个线程都可以调用socket接口创建struct sockaddr_in结构体然后将sockfd和结构体进行bind。这样一个进程就可以通过不同的线程绑定到多个端口号上从而提供不同的服务或处理不同的通信需求。例如一个Web服务器进程可能同时监听80端口用于HTTP服务和443端口用于HTTPS服务。 一个端口号是否可以被多个进程bind 通常情况下一个端口号在同一时刻只能被一个进程绑定。这是为了确保数据传输的准确性和一致性。端口号需要标识进程的唯一性如果多个进程绑定到同一个端口号那么当数据包从传输层向上交付时系统就无法确定应该将数据包交付给哪个进程。因此如果一个进程已经绑定到某个端口号其他进程再试图绑定到同一个端口号时操作系统通常会抛出错误或拒绝绑定请求。 然而在某些特殊情况下如使用了端口共享技术或某些特定的网络编程模式可能会实现多个进程共享同一个端口号的情况。但这种情况相对较少见且需要谨慎处理以避免潜在的问题。 总的来说进程和端口号之间的关系是一个进程可以绑定到多个端口号上但一个端口号在同一时刻通常只能被一个进程绑定。 2.3netstat netstat是一个用来查看网络状态的重要工具. 语法netstat [选项] 功能查看网络状态 常用选项 n 拒绝显示别名能显示数字的全部转化成数字 l 仅列出有在 Listen (监听) 的服務状态 p 显示建立相关链接的程序名 t (tcp)仅显示tcp相关选项 u (udp)仅显示udp相关选项 a (all)显示所有选项默认不显示LISTEN相关 还有本地通信的域间套接字 iostat pidof比ps更好用 在查看服务器的进程id时非常方便. 语法pidof [进程名] 功能通过进程名, 查看进程id 一般进程名带后缀d是守护进程 把本应输出到stdin的数据重定向到管道后的程序 xargs的作用是把这些数据以命令行参数交给kill 3.UDP协议 3.0每学一个协议 都要讨论一下问题 报头和有效载荷如何分离 对于udp定长报头有效载荷应该交付给哪一个上层协议对应的协议字段方案【对于udp 通过报头中的目的端口号来得知】认识报头协议周边问题 3.1UDP协议 UDP协议端格式 16位UDP长度, 表示整个数据报(UDP首部UDP数据)的最大长度;如果校验和出错, 就会直接丢弃; 丢弃并不会通知对方—-不可靠传送 UDP的特点 UDP传输的过程类似于寄信. 无连接: 知道对端的IP和端口号就直接进行传输, 不需要建立连接;不可靠: 没有确认机制, 没有重传机制; 如果因为网络故障该段无法发到对方, UDP协议层也不会给应用层返回任何错误信息;面向数据报: 不能够灵活的控制读写数据的次数和数量; 面向数据报 应用层交给UDP多长的报文, UDP原样发送, 既不会拆分, 也不会合并; 例如用UDP传输100个字节的数据: 如果发送端调用一次sendto, 发送100个字节, 那么接收端也必须调用对应的一次recvfrom, 接收100个字节; 而不能循环调用10次 recvfrom, 每次接收10个字节; 而tcp需要做很多处理提取各种信息以保证读到完整的信息。 udp只需要序列化发送反序列化接收 UDP的缓冲区 udp没有发送缓冲区 UDP没有真正意义上的 发送缓冲区. 调用sendto会直接交给内核, 由内核将数据传给网络层协议进行后续的传输动作; UDP具有接收缓冲区. 但是这个接收缓冲区不能保证收到的UDP报的顺序和发送UDP报的顺序一致; 如果缓冲区满了, 再到达的UDP数据就会被丢弃;如法的是123456收到的不一定这样的顺序。乱序是不可靠的一种场景。过剩报文丢弃也是不可靠的一种场景。 UDP的socket既能读, 也能写, 这个概念叫做 全双工 UDP使用注意事项 UDP协议首部中有一个16位的最大长度. 也就是说一个UDP能传输的数据最大长度是64K(包含UDP首部). 64K在当今的互联网环境下, 是一个非常小的数字. 如果需要传输的数据超过64K, 就需要在应用层手动的分包, 多次发送, 并在接收端手动拼装; 基于UDP的应用层协议 NFS: 网络文件系统 TFTP: 简单文件传输协议 DHCP: 动态主机配置协议 BOOTP: 启动协议(用于无盘设备启动) DNS: 域名解析协议 当然, 也包括自己写UDP程序时自定义的应用层协议; 应用场景 直播 视频掉帧 卡顿 模糊 udp报头 – 位段 – 自定义类型 – 可以自定义变量 – 可以开辟空间 3.2谈udp/tcp实际上是在讨论什么 我们学udp/tcp是为了了解为了在某一天某个应用场景实际上我们不会直接用udp协议去怎么样更多的是基于udp/tcp协议的一些场景。比如。