端口号

第一章 概述

為{幸葍}努か 提交于 2020-01-18 14:53:08
一 分层 TCP/IP网络协议栈分为应用层(Application)、传输层(Transport)、网络层(Network)和链路层(Link)四层。 1)链路层,有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。 2)网络层,有时也称作互联网层,处理分组在网络中的活动,例如分组的选路。在TCP/IP协议族中,网络层协议包括IP协议(网际协议)、ICMP(Internet互联网控制报文协议)、以及IGMP协议(Internet 组管理协议) 3)运输层主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议族中,有两个互不相同的传输协议:TCP(传输控制协议)、UDP(用户数据报协议) 4)应用层负责处理特定的应用程序细节。几乎各种不同的TCP/IP实现都会提供下面这些通用的应用程序: Telnet远程登录 FTP文件传输协议 SMTP简单邮件传送协议 SNMP简单网络管理协议 两台计算机通过TCP/IP协议通讯的过程如下所示: 传输层及其以下的机制由内核提供,应用层由用户进程提供,应用程序对通讯数据的含义进行解释,而传输层及其以下处理通讯的细节,将数据从一台计算机通过一定的路径发送到另一台计算机。应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation),如下图所示:

传输协议三

落爺英雄遲暮 提交于 2020-01-17 12:01:55
五、建立 TCP客户端 讨论了套接字类的功能后,我们将分析一个完整的 TCP客户端程序。此处我们将看到的客户端程序是一个daytime客户端,它连接到一个daytime服务器程序以读取当前的日期和时间。建立套接字连接并读取信息是一个相当简单的过程,只需要少量的代码。 默认情况下 daytime服务运行在13端口上。并非每台计算机都运行了daytime服务器程序,但是Unix服务器是客户端运行的很好的系统。如果你没有访问Unix服务器的权限,在第七部分我们给出了TCP daytime服务器程序代码--有了这段代码客户端就可以运行了。 DaytimeClient的代码 import java.net.* import java.io.*; public class DaytimeClient { public static final int SERVICE_PORT = 13; public static void main(String args[]) { // 检查主机名称参数 if (args.length != 1) { System.out.println ("Syntax - DaytimeClient host"); return; } // 获取服务器程序的主机名称 String hostname = args[0]; try { //

UNP——第二章,端口号,套接字对,TCP,UDP输出

假装没事ソ 提交于 2020-01-17 00:33:54
1.端口号   端口号用于区分使用相同协议的进程。   TCP69 与 UDP69 是不同的。   端口号范围 0 - 65535, 其中 0- 1023 是保留端口。 2.套接字对   TCP服务通过套接字对,唯一识别进程。   如上,服务器fork后,两个子进程都 bind 了 12.106.32.254:21,那么TCP服务收到对端的数据包,应该给哪个进程呢?   所以套接字对才是数据收发的唯一表示,两个套接字对,是连接的唯一标识。 3.TCP输出   如上,TCP是带缓存的。     (1)应用程序调用 write,数据只是拷贝到TCP缓存,如果缓存空间不足,write会阻塞(若设置非阻塞,会直接返回),直到所有数据传到 TCP缓存。     所以write返回后,并不表示数据传到了对端,只是写入了TCP缓存。     (2)TCP缓存的大小可以用 SO_SNDBUF 设置     (3)TCP如何处理缓存数据?         TCP会按照MSS进行分节,并保留副本,并传递给IP层,IP层会打包分组,传到链路层,链路层按照MTU生成帧,传到物理层。         这里:           MSS <= MTU - 20(TCP首部字节数) - 20(IP首部字节数)           是设置MSS的推荐方法,原因是避免MTU分组     (4

服务器(centos6.5)安装和配置FastDFS

我是研究僧i 提交于 2020-01-16 18:33:46
一、基础 FastDFS是纯C语言实现,只支持Linux、FreeBSD等UNIX系统。 FastDFS的两个核心概念分别是:Tracker(跟踪器)、Storage(存储节点) 二、目的 搭建图片服务器 三、安装环境 依赖: libfastcommon-master.zip fastdfs-master.zip fastdfs-nginx-module-master.zip 传送门: https://github.com/happyfish100/libfastcommon https://github.com/happyfish100/fastdfs https://github.com/happyfish100/fastdfs-nginx-module 云盘: 链接:https://pan.baidu.com/s/1Bct79IJ6outBP8757-EWnQ 提取码:p9df 链接:https://pan.baidu.com/s/1buKNgzuL91kwQhX2l0OvBw 提取码:0xb6 链接:https://pan.baidu.com/s/13gQ8MFtbNUpJq5m_CMjR7Q 提取码:03u5 下载好后传到云服务器如图(与nginx同一目录下): 安装libfastcommon: 解压: cd /usr/local/ unzip libfastcommon

Java基础(19)——网络编程

拥有回忆 提交于 2020-01-16 15:08:02
目录 第一章 网络编程入门 1.1软件结构 1.2 网络通信协议 1.3 协议分类 1.4 网络编程三要素 协议 IP地址 端口号 第二章 TCP通信程序 2.1 概述 2.2 Socket类 构造方法 成员方法 2.3 ServerSocket类 构造方法 成员方法 2.4 简单的TCP网络程序 TCP通信分析图解 客户端向服务器发送数据 服务器向客户端回写数据 第三章 综合案例 3.1 文件上传案例 文件上传分析图解 基本实现 文件上传优化分析 优化实现 信息回写分析图解 回写实现 3.2 模拟B\S服务器(扩展知识点) 案例分析 案例实现 访问效果 第一章 网络编程入门 1.1软件结构 C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。 B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。 两种架构各有优势,但是无论哪种架构,都离不开网络的支持。 网络编程 ,就是在一定的协议下,实现两台计算机的通信的程序。 1.2 网络通信协议 **网络通信协议:**通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样。在计算机网络中,这些连接和通信的规则被称为网络通信协议

tomcat常见问题分析

こ雲淡風輕ζ 提交于 2020-01-16 14:51:50
文章目录 一、黑窗口一闪而过的问题 (1)原因 (2)解决方案 二、启动报错 (1)原因 (2)解决方案 一、黑窗口一闪而过的问题 (1)原因 原因:没有正确配置JAVA_HOME环境变量。tomcat是使用纯Java编写的,它的启动和运行需要依赖JDK。 (2)解决方案 解决方案:Java的JDK必须新建一个名为 JAVA_HOME 的变量名。 二、启动报错 (1)原因 原因:端口号冲突 (2)解决方案 解决方案 1.将占用端口的应用结束 2.修改自身应用的端口号(不建议) 查看本机端口号: netstat -ano 修改tomcat自身的端口号: conf包下的server.xml中修改 注意:要在server.xml中修改很多端口号,不止一个。 来源: CSDN 作者: 郭乾亮1998. 链接: https://blog.csdn.net/weixin_43691058/article/details/103999453

常用端口总结

a 夏天 提交于 2020-01-15 23:53:29
常用的端口信息概述 在windows 2000/xp/server 2003中要查看端口,可以使用netstat命令: 依次点击“开始→运行”,键入“cmd”并回车,打开命令提示符窗口。在命令提示符状态下键入“netstat -a -n”,按下回车键后就可以看到以数字形式显示的tcp和udp连接的端口号及状态。 小知识:netstat命令用法 命令格式:netstat -a -e -n -o -s -a 表示显示所有活动的tcp连接以及计算机监听的tcp和udp端口。 -e 表示显示以太网发送和接收的字节数、数据包数等。 -n 表示只以数字形式显示所有活动的tcp连接的地址和端口号。 -o 表示显示活动的tcp连接并包括每个连接的进程id(pid)。 -s 表示按协议显示各种连接的统计信息,包括端口号。 关闭/开启端口 在介绍各种端口的作用前,这里先介绍一下在windows中如何关闭/打开端口,因为默认的情况下,有很多不安全的或没有什么用的端口是开启的,比如telnet服务的23端口、ftp服务的21端口、smtp服务的25端口、rpc服务的135端口等等。为了保证系统的安全性, 们可以通过下面的方法来关闭/开启端口。 关闭端口 比如在windows 2000/xp中关闭smtp服务的25端口,可以这样做:首先打开“控制面板”,双击“管理工具”,再双击“服务”

activemq常用配置

安稳与你 提交于 2020-01-15 17:03:03
所用版本为apache-activemq-5.15.4的版本 修改端口号 当端口号冲突时,可以修改这两个端口号。修改activemq.xml 修改里面的61616端口。修改jetty.xml,修改里面的8161端口。 两个配置文件均位于/usr/local/apache-activemq-5.15.4/conf文件夹下 activemq.xml jetty.xml 开启mq管理页面密码 修改jetty.xml中的 <property name="authenticate" value="true" /> 为true 控制台的登录用户名密码保存在conf/jetty-realm.properties文件中,内容如下: 用户名和密码的格式是 用户名 : 密码 ,角色名 来源: https://www.cnblogs.com/miye/p/9399501.html

nginx与php-fpm通信的两种方式

社会主义新天地 提交于 2020-01-15 08:58:56
转载:http://blog.csdn.net/koastal/article/details/52303316 简述 在linux中,nginx服务器和php-fpm可以通过tcp socket和unix socket两种方式实现。 unix socket是一种终端,可以使同一台操作系统上的两个或多个进程进行数据通信。这种方式需要再nginx配置文件中填写php-fpm的pid文件位置,效率要比tcp socket高。 tcp socket的优点是可以跨服务器,当nginx和php-fpm不在同一台机器上时,只能使用这种方式。 windows系统只能使用tcp socket的通信方式 配置方法 tcp socket tcp socket通信方式,需要在nginx配置文件中填写php-fpm运行的ip地址和端口号。 location ~ \.php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; } unix socket unix socket通信方式,需要在nginx配置文件中填写php-fpm运行的pid文件地址。 location

Linux学习之socket编程(一)

家住魔仙堡 提交于 2020-01-15 00:13:43
socket编程 socket的概念:     在TCP/IP协议中,“IP地址+TCP或UDP端口号”唯一标识网络通讯中的一个进程,“IP地址+端口号”就称为socket。   在TCP协议中,建立连接的两个进程各自有一个socket来标识,那么这两个socket组成的socket pair就唯一标识一个连接。socket本身有“插座”的意思,因此用来描述网络连 接的一对一关系。   TCP/IP协议最早在BSD UNIX上实现,为TCP/IP协议设计的应用层编程接口称为socketAPI。   本章的主要内容是socket API,主要介绍TCP协议的函数接口,最后介绍UDP协议和UNIXDomain Socket的函数接口。 socket socket-api 1.基础知识 网络字节序     我们已经知道,内存中的多字节数据相对于内存地址有大端和小端之分,磁盘文件中的多字节数据相对于文件中的偏移地址也有大端小端之分。网络数据流同样有大端小端之分,那么如何定义网络数据流的地址呢?发送主机通常将发送缓冲区中的数据按内存地址从低到高的顺序发出,接收主机把从网络上接到的字节依次保存在接收缓冲区中,也是按内存地址从低到高的顺序保存,因此,网络数据流的地址应这样规定:先发出的数据是低地址,后发出的数据是高地址。   TCP/IP协议规定,网络数据流应采用大端字节序,即低地址高字节