tcp

  • Nmap扫描原理与用法

    Nmap扫描原理与用法 2012年6月16日 1 Nmap介绍 Nmap扫描原理与用法PDF:下载地址 Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具.软件名字Nmap是Network Mapper的简称.Nmap最初是由Fyodor在1997年开始创建的.随后在开源社区众多的志愿者参与下,该工具逐渐成为最为流行安全必备工具之一.最新版的Nmap6.0在2012年5月21日发布,详情请参见:www.nmap.org. 一

    tcp, scripting, DNS服务器, 脚本, 防火墙, 网络April 1

  • Linux下突破限制实现高并发量服务器

    1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的 限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄).可使用ulimit命令查看系统允许当 前用户进程打开的文件数限制: [[email protected] ~]$ ulimit -n 1024 这表示当前用户的每个进程最多允许同时打开1024个文

    tcp, 服务器, 文件描述符March 30

  • TCP的几个状态

    在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG. 其中,对于我们日常的分析有用的就是前面的五个字段, 它们的含义是: SYN表示建立连接, FIN表示关闭连接, ACK表示响应, PSH表示有 DATA数据传输, RST表示连接重置. 其中,ACK是可能与SYN,FIN等同时使用的,比如SYN和ACK可能同时为1,它表示的就是建立连接之后的响应, 如果只是单个的一个SYN,它表示的只是建立连接. TCP的几次握手就是通过这样的AC

    tcpMarch 5

  • 程序网络访问出错:lacked sufficient buffer space

    之前在用Go语言做一个批量程序时出现在下错误 dial tcp 127.0.0.1:80: An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full. 环境:程序操作是一直模拟访问网站,不断Get一些网页或Post一些数据,运行在服务器上,刚开始正常,一会数据过大之后就出现如上错误了. 网上查找资料后了解

    tcp, Golang, close_waitMarch 5

  • 传统IP网络地址转换(传统NAT)

    传统IP网络地址转换(传统 NAT) (RFC3022 Traditional IP Network Address Translator (Traditional NAT)) 备忘录状态 这个备忘录为因特网社区提供信息.它没有详细说明任何一种网络标准.这个备忘录的 发布没有限制. 版权声明 版权属于因特网社会(2001).保留所有权利. 前言 在这个文档中描述的IP地址转换操作扩展了RFC1631介绍的地址转换和包括了一类 的网络地址和TCP/UDP端口转换.另外,这个文档更正了RFC1631

    tcp, freebsd, DNS服务器, 网络, 任务, 路由器March 3

  • TCP的三次握手/四次挥手以及状态变迁图
    TCP的三次握手/四次挥手以及状态变迁图

    原文链接:http://hi.baidu.com/suxinpingtao51/item/be5f71b3a907dbef4ec7fd0e 大家对netstat -a命令很熟悉吧,但是,你有没有注意到STATE一栏呢,基本上显示着established,time_wait,close_wait等,这些到底是什么意思呢,在这篇文章,我将会详细的阐述. 大家很明白TCP初始化连接三次握手吧:发SYN包,然后返回SYN/ACK包,再发ACK包,连接正式建立.但是这里有点出入,当请求者收到SYS /AC

    tcp, 转换, 12种状态February 24

  • Netty权威指南之TCP粘包/拆包

    TCP粘包/拆包发生的原因: 应用程序write写入的字节大小大于套接口发送缓冲区大小. 进行MSS大小的TCP分段. 以太网帧的payload大于MTU进行IP分片. 粘包问题的解决策略 消息定长,例如每个报文的大小为固定长度200字节,如果不够,不空格. 在包尾增加回车换行符进行分割,例如FTP协议. 将消息分为消息头和消息体,消息头中包含表示消息总长度的字段,通常涉及思路为消息头的第一个字段使用int32来表示消息总长度. 更复杂的应用层协议. 未考虑TCP粘包导致功能异常的案例 pack

    tcp, netty, 粘包/拆包February 12

  • TCP 通讯握手
    TCP 通讯握手

    首先需要知道CLOSE_WAIT产生的原因,才能够解决该问题,或者减少该问题的发生. TCP连接关闭时需要四次握手才能够完成,如下图所示 产生CLOSE_WAIT状态的一方,是属于被动关闭的一方,用简单的话对解释上图(主动关闭方为A,被动关闭方为B): A发一条FIN(关闭)请求给B,说我要关闭了: B回应一条ACK(确认)请求给A,说我知道了,你关吧,此时B就会进行CLOSE_WAIT状态: B发送一条FIN(关闭)请给A,说我要关闭了: A收到发送一条ACK(确认)消息说,你关闭吧.

    tcpNovember 7

  • tcp关闭状态详解
    tcp关闭状态详解

    ‍1. tcp关闭连接状态转换‍ 上图是tcp连接主动关闭端的状态转换图: (1)应用层调用close函数发起关闭连接请求 (2)发送FIN到对端,关闭写通道,自己进入FIN_WAIT1状态 (3)等待对端的确认ACK到来,接受到ACK后进入FIN_WAIT2状态:如果在超时时间内没有收到确认ACK直接进入CLOSED状态 (4)如果在FIN_WAIT1状态时收到了对端的FIN则进入CLOSING状态(双发都发出了关闭连接请求) (5)在FIN_WAIT2接受到了对端FIN后进入TIME_WAI

    tcp, close_waitOctober 24

  • Tcp 为什么要三次握手

    发现自己对tcp还是不牢靠 曾经认为,tcp 建连的过程是这样的, 客户端 发送syn 到服务端 (第一次握手) 服务端 发送syn(并携带ack) 到客户端(第二次握手) 客户端 发送数据 到服务端(完全丢了第三次握手,汗颜..) ------ 现补充:::: tcp 建连过程 客户端 发送syn 到服务端 (第一次握手) 服务端 发送syn(并携带ack) 到客户端(第二次握手) 客户端 又发送syn(并携带ack) 到服务端(第三次握手) 三次握手之后,客户端和服务端才能愉快的传送数据了.

    tcp, 握手August 28

  • linux(RedHat)从/proc/net/tcp 中读取tcp连接信息
    linux(RedHat)从/proc/net/tcp 中读取tcp连接信息

    本段代码编译环境G++ 在linux中,输入命令"netstat -at"可以查看tcp连接状况.用C++程序读取这些信息,可以通过读取文件"/proc/net/tcp"实现. /proc/net/tcp内容如下: 上面代码取的是local_address.rem_address.st三列,分别代表本地地址和端口号.远端地址和端口号和连接状态.其中local_address和rem_address两列中每个数字都是一个16进制数,前面八个数,两两构成一个十六进制数,

    tcp, linux, 连接信息August 26

  • 高性能网络编程7--tcp连接的内存使用
    高性能网络编程7--tcp连接的内存使用

    当服务器的并发TCP连接数以十万计时,我们就会对一个TCP连接在操作系统内核上消耗的内存多少感兴趣.socket编程方法提供了SO_SNDBUF.SO_RCVBUF这样的接口来设置连接的读写缓存,linux上还提供了以下系统级的配置来整体设置服务器上的TCP内存使用,但这些配置看名字却有些互相冲突.概念模糊的感觉,如下(sysctl -a命令可以查看这些配置): net.ipv4.tcp_rmem = 8192 87380 16777216 net.ipv4.tcp_wmem = 8192 65

    memory, tcp, linux, kernel, 缓存August 24

  • TCP 协议难点汇总
    TCP 协议难点汇总

    本文不会完整的介绍TCP,只有在涉及到的时候随便提一下.不适合对TCP整个流程和框架没有了解过的人阅读. 1 TCP 四次挥手中的TIME_WAIT状态的意义何在. 下图四次挥手的一个大体的流程 我们发现在A发送完一个最后一个ACK后,B一收到这个ACK就证明关闭请求已经被确认了,所以可以直接关闭.但是这时候A怎么知道这个ACK是否已经到达了对端呢?这个时候为了保证双方能够正常关闭,就引入了一个MSL时间,MSL定义 "一个电磁波信号在地球最大的存活时间 " . 所以该ACK存活一个M

    tcp, 窗口July 21

  • 实战利用WireShark对Telnet协议进行抓包分析
    实战利用WireShark对Telnet协议进行抓包分析

    Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式.它为用户提供了在本地计算机上完成远程主机工作的能力.在终端使用者的电脑上使用telnet程序,用它连接到服务器.终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样.可以在本地就能控制服务器.要开始一个telnet会话,必须输入用户名和密码来登录服务器.Telnet是常用的远程控制Web服务器的方法. 一. 准备工作 虚拟机Virtual Box(

    tcp, wireshark, 抓包, telnet, 三次握手July 14

  • Nodejs实现TCP反向代理

    场景: 你有若干机器,却只有一台能被外网访问,如果要让外网访问到你其它机器上的服务,就需要做反向代理,在上一篇文章中,我们用nodejs轻松实现了http反向代理.如果是TCP服务,例如mysql数据库,同样用nodejs来做实现一个反向代理也是很容易的. 第一种方式: var net = require('net'); // parse "80" and "localhost:80" or even "42mEANINg-life.com:80"

    tcp, nodejs, 反向代理July 11

  • Google Go TCP 开发

    GO 的TCP开发 需要import "net"包 IP类型,其中一个重要的方法是IP.ParseIP(ipaddr string)来判断是否是合法的IP地址 与TCP相关的函数 func (c *TCPConn) Write(b []byte) (n int, err os.Error)用于发送数据,返回发送的数据长度或者返回错误,是TCPConn的方法 func (c *TCPConn) Read(b []byte) (n int, err os.Error)用于接收数据,返回接收

    tcpJune 29

  • 常用服务器模型总结

    UNPv3上一共总结了9种服务器模型分别是: 1.迭代服务器 2.并发服务器,为每个客户fork一个进程 3.预先派生子进程,每个子进程都调用accept,accept无上锁保护 4.预先派生子进程,以文件锁的方式保护accept 5.预先派生子进程,以线程互斥锁上锁的方式保护accept 6.预先派生子进程,由父进程向子进程传递套接口描述字 7.并发服务器,为每个客户请求创建一个线程 8.预先创建线程,以互斥锁上锁方式保护accept 9.预先创建线程,由主线程调用accept,并把每个客户连

    tcp, 网络编程, socket, 服务端June 28

  • ss 命令
    ss 命令

    我们经常使用的netstat其实早已弃用,取而代之是来自iproute iproute2中的ss(socket statistics)命令,它能比netstat显示更多信息而且更快. netstat命令 读取各种/proc 文件收集信息. 然而当有很多连接时它的性能下降很快,使得变的很慢. ss命令能够从内核空间直接得到信息,ss命令选项与netstat非常相似,容易替代. [email protected]:~# ss -help Usage: ss [ OPTIONS ] ss [ OPTIONS

    statistics, tcp, iproute, socketJune 18

  • LINUX网络编程(TCP)(1 )

    实现一个网络编程: 使用传输协议:TCP 主要是写一些关于socket函数的使用. 大致实现这么一个功能: 客户端 发送1 服务器返回 Hello 发送2 服务器返回 GOOD 发送3 服务器返回 Bye 并且关闭连接. 先看客户端的程序: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #i

    tcp, linuxJune 3

  • 以前写的一个TCP报文分析程序

    #include<stdio.h> #include<sys/types.h> #include<sys/stat.h> #include<fcntl.h> #include<unistd.h> #include <arpa/inet.h> #define FILE_OPEN_FLAGS O_RDWR #define buffer_length 1518 int main(int argc, char* argv[]) { unsig

    tcp, tcpdump, wiresharkMay 26

  • 关于 TCP window size

    今天发现IM的发送大量消息的TCP报文里有很多 524 22.770505000 192.168.1.26 192.168.2.203 TCP 60 [TCP ZeroWindow] xmpp-client → 18723 [ACK] Seq=1622 Ack=7849 Win=0 Len=0 Window size value: 0 [Calculated window size: 0] Window size scaling factor: 128 特别查了下做个记录, window siz

    tcp, size, window, 滑动窗口May 13

  • ORA-28547的解决

    昨天不知道怎么的(可能是由于更改了系统日期也可能是其他的),突然在pl/sql中不能执行SQL语句,但是能连上.上网查了些资料,终于: 1. 修改oracle的网络配置文件,具体做法是:在oracle安装目录下搜索sqlnet.ora文件,一般在$\NETWORK\ADMIN目录下, 用记事本打开把文件中的一行: SQLNET_AUTHENTICATION_SERVICES= (NTS) 修改为: SQLNET_AUTHENTICATION_SERVICES= (NONE) 2. 同时修改监听器

    sql, oracle, authentication, tcp, 网络, NetworkMay 4

  • Linux双网卡下的网络故障排查

    网络环境中存在一台服务器,这台服务器上有两块网卡.一块网卡上的IP属于业务平面,对外不可见.另外一块网卡上的IP属于管理平面,允许网络外的PC访问. Server环境: Linux操作系统 eth0:10.0.100.30 255.255.255.0 10.0.100.254 管理平面 vlan100 eth1:10.0.101.30 255.255.255.0 业务平面 vlan101 PC环境: Windows操作系统 ip:10.0.9.6 255.255.255.0 10.0.9.6 v

    tcp, 网络, 双网卡April 14

  • 从输入网址到浏览器显示页面的详细过程

    从输入网址到浏览器显示页面的详细过程: browser checks cache; if requested object is in cache and is fresh, skip to #9 browser asks OS for server's IP address OS makes a DNS lookup and replies the IP address to the browser browser opens a TCP connection to server (this

    tcp, Http, DNS, 计算机网络April 14

  • TCP连接 小记

    ‍ 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接.TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在"无差别"的网络之上. 建立起一个TCP连接需要经过"三次握手": 第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认: 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时

    tcpMarch 14

  • socket (tcp 局域网内)简单示例

    这里使用的是第三方库 AsyncSocket.故使用时, 需要先添加第三方库,并添加静态库 CFNetWork.framework;并在实现类时,导入头文件 AsyncSocket.h 服务器端: //1.初始化服务端socket AsyncSocket *serverSocket = [[AsyncSocket alloc]initWithDelegate:self]; //2.开启端口 [serverSocket acceptOnPort:0x1234 error:nil]; //3.建立连

    tcp, ios, socketFebruary 28

  • Java实现的聊天室
    Java实现的聊天室

    配置类: public class Setting { public static String SERVER_IP = "127.0.0.1"; public static int SERVER_PORT = 5250; public static String COMMAND_LOGIN = "login"; public static String COMMAND_LOGIN_SUC = "login_suc"; public static

    tcp, Java, socket, 聊天February 16

  • TCP的状态迁移图
    TCP的状态迁移图

    4.TCP的状态迁移图 这个图n多人都知道,它对排除和定位网络或系统故障时大有帮助,但是怎样牢牢地将这张图刻在脑 中呢?那么你就一定要对这张图的每一个状态,及转换的过程有深刻地认识,不能只停留在一知半解之中.下面对这张图的11种状态详细解释一下,以便加强记 忆!不过在这之前,先回顾一下TCP建立连接的三次握手过程,以及关闭连接的四次握手过程. 1.建立连接协议(三次握手) (1)客户端发送一个带SYN标志的TCP报文到服务器.这是三次握手过程中的报文1. (2) 服务器端回应客户端的,这是三次握

    tcpFebruary 7

  • UDP/TCP穿越NAT的P2P通信方法研究
    UDP/TCP穿越NAT的P2P通信方法研究

    内容概述:在p2p通信领域中,由NAT(Network Address Translation,网络地址转换)引起的问题已经众所周知了,它会导致在NAT内部的p2p客户端在无论以何种有效的公网ip都无法访问的问题.虽然目前已经发展出多种穿越NAT的技术,但相关的技术文档却很少,用来证明这些技术的稳定性和优点的实际数据更少.本文的目的在于描述和分析在实际中运用得最广泛.最可靠同时也是最简单的一种NAT穿越技术,该技术通常被称为"打洞"技术.目前,"打洞"技术已经在UD

    tcp, udp, 打洞January 20

  • nginx-0.1.0文件分析2: ngx_socket.c

    函数预览: 1)ngx_nonblocking 2)ngx_blocking 3)ngx_tcp_nopush 4)ngx_tcp_push 解析: 1)ngx_nonblocking 从字面意义来理解,就是非阻塞. int ngx_nonblocking(ngx_socket_t s) { u_long nb; nb = 1; return ioctl(s, FIONBIO, &nb); } 实际上是执行ioctl(s,FIONBIO,&(value:1)); FIONBIO 设置/ 清

    tcp, nginxJanuary 18

  • golang -- TCP服务器(2)

    tcp服务器 包括日志,定时处理,广播,超时 map写添加了锁(读不用锁) 添加了解码器 删除了addr-buf映射,添加删除锁 mark:今天听大神所要处理系统中断EINTR, 以后做简单处理EINTR--retry mark:用struct封装addr, net.Listener, exit(是否断开)等信息..最重要的是使用: br := bufio.NewReader(conn), bw := bufio.NewWriter(conn)来取代读循环,这样就可以需要的时候再读/写 http

    tcp, GolangJanuary 12

  • python的socket

    python操作socket import socket#需要导入的包 address = ('10.10.0.254',9922)#ip+port s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(address) s.send("GetRecord(start_time=\"2013-01-05 18:00:00\" end_time=\"2013-01-06 23:59:59\&quo

    python, tcp, socketJanuary 7

  • 利用libvirt库的tcp链接方式管理虚拟机

    Virsh命令可以通过ssh查看远程客户机上运行的虚拟机,virsh命令用的是python的libvirt库,其实使用libvirt库还有其他方法可以从远程查看客户机上运行的虚拟机,有时候需要查找某一台虚拟机运行在哪台客户机上,一台一台查看很麻烦,使用virsh走ssh也可以看,不过每次都要输入ssh密码,你可以设置成key模式来避免每次都要输入密码,不过我不想使用免key登陆.还好libvirt还支持其他方式,比如tcp. tcp方式一般采用下面的链接方式进行访问 qemu+tcp://exa

    tcp, libvirtDecember 7

  • TCP/UCP打洞原理
    TCP/UCP打洞原理

    Internet的迅速发展以及IPv4 地址数量的限制使得网络地址翻译(NAT,Network Address Trans2lation)设备得到广泛应用.NAT设备允许处于同一NAT后的多台主机共享一个公网(本文将处于同一NAT后的网络称为私网,处于NAT前的网络称为公网) IP 地址.一个私网IP 地址通过NAT设备与公网的其他主机通信.公网和私网IP地址域,如下图所示: 广域网与私网示意图 一般来说都是由私网内主机(例如上图中"电脑A-01")主动发起连接,数据包经过NAT地址转

    tcp, Java, NAT, 打洞November 25

  • tornado的IOLoop用于tcp通信

    之前的是使用原始的socket然后add_handler加入fd到ioloop监听, 其实tornado提供了更高级的抽象, TCPServer和IOStream 服务器代码 #! /usr/bin/env python #coding=utf-8 from tornado.tcpserver import TCPServer from tornado.ioloop import IOLoop class Connection(object): clients = set() def __ini

    tcp, tornadoOctober 23

  • TCP/IP-卷1-笔记-第三章-IP:网际协议-上

    3.1 引言 所有的TCP.UDP.ICMP及IGMP数据都以IP数据报格式传输.IP提供的是不可靠.无连接的数据报传送服务. 不可靠:是它不能保证IP数据报能成功到达目的地,IP仅提供尽力而为的传输服务.如果发生某种错误,则直接把数据报丢弃,然后发生ICMP消息报给信源. 无连接:是IP并不维护任何关于后续数据报的状态信息.也说明IP数据报可以不按发送顺序接收. 3.2 IP首部 4位版本 4位首部长度 8位服务类型 16位总长度(字节数) (0~31,有32位) 16位标识 3位标志 13位

    tcp, IP首部, 路由选择October 6

  • TCP/IP-卷1-笔记-第一章-下

    1.7 分用 另一主机收到数据帧,从协议栈中由底向上升,同时去掉协议加上的首部检查标识,确定使用的协议,此过程为分用. TCP/UDP根据端口号分用,IP根据首部协议族分用. 网络接口层通过首部帧类型分用. 1.8 客户-服务器类型 两种类型: 重复型:1.等待1个客户请求到来 2.处理客户请求 3.发送响应给发送请求用户 4.返回到1 重复服务器问题主要在2,在2时,不能为其他客户服务 并发型:1.等待1个客户请求到来 2.启动一个新服务器(新进程,任务或线程),处理所有客户请求,结束后终止此

    tcp, udp, 网络, 协议October 6

  • Python 实现 socket 通讯 (TCP/UDP)

    1. TCP 1.1 TCP-Server # -*- coding: utf-8 -*- # TCP-Server import socket # 1. 创建 socket 对象 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 2. 将 socket 绑定到指定地址 address = ('127.0.0.1', 10140) s.bind(address) # 3. 接收连接请求 s.listen(5) # 4. 等待客户请求一

    python, tcp, udp, 网络编程August 28

  • TCP/IPC协议简解
    TCP/IPC协议简解

    开着电脑,每时每刻都在跟网络打交道,如果要做网络开发,更要懂TCP/IP协议了. 一个简图说明TCP/IP的分层功能: 而在实际操作系统中,只有应用层.传输层.网络层,链路层. 去个例子说明系统四个层的功能:A电脑给B电脑发送一条信息:"我要努力学习!",应用层会消息钱加上应用标记:"app"+"我要努力学习!", 然后将数据传输给传输层,传输层在数据前加上TCP标记:"TCP"+"app"+"我

    tcp, IP协议August 28

  • ip tcp udp包头结构

    IP,TCP,UDP报头结构 2008-05-07 16:25 版本号(4) 包头长(4) 服务类型(8) 数据包长度(16) 标识(16) 偏移量(16) 生存时间(8) 传输协议(8) 校验和(16) 源地址(32) 目的地址(32) 选项(8) ......... 填充 对其进行数据结构封装: typedef struct _iphdr //定义IP报头 { unsigned char h_lenver; //4位首部长度+4位IP版本号 unsigned char tos; //8位服务

    tcp, udp, ip报头July 22

  • monkeysocks开发日志--TCP协议分析及架构规划
    monkeysocks开发日志--TCP协议分析及架构规划

    monkeysocks的目标是为开发以及测试提供一个稳定的环境.它使用socks代理,将录制网络流量并本地保存,并在测试时将其重放. jsocks的改造 首先对公司一个项目进行了代理,测试结果:从开始启动到完成,只有4.7M的网络流量,本地空间开销不是问题. 今天把jsocks修改了下,将build工具换成了maven,并独立成了项目https://github.com/code4craft/jsocks.后来算是把record和replay功能做完了,开始研究各种协议replay的可能性. r

    tcp, monkeysocksJuly 7

  • Netty4.0 开发指导 1

    原文: http://netty.io/wiki/user-guide-for-4.x.html 前言 1. 问题 如今我们使用通用的程序或者第三方的库去与对方交互. 比如,我们经常使用HTTP库从web服务器检索信息或者通过web服务调用远程方法. 然而,通用的协议或者它的实现有时扩展性不好. 这就像我们不使用通用的HTTP服务器去交换大文件, e-mail消息, 以及近实时消息像股票信息和多人游戏数据. 多么需要一个专门为了特殊用途高度优化的协议实现. 比如, 你可能想实现一个优化的HTTP

    tcp, netty, socketJune 17

  • java socket, java套接字, java网络编程, java tcp, java udp

    TCP是Tranfer Control Protocol的 简称,是一种面向连接的保证可靠传输的协议.通过TCP协议传输,得到的是一个顺序的无差错的数据流.发送方和接收方的成对的两个socket之间必须建 立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待建立连接时,另一个socket可以要求进行连接,一旦这两个socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送 或接收操作. UDP是User Datagram Protoco

    tcp, udp, Java, socket, java网络编程, java套接字May 31

  • 对于TCP流程以及其协议的理解(更新中)
    对于TCP流程以及其协议的理解(更新中)

    那天去某公司面试,被问到TCP协议中的,TIME_WAIT 是什么时候会出现啊?我想了一下回答,是client端请求连接,在等待server端确认请求的时候,出现了.信心满满的答,最后,回来一查,发现错了. 现在整理一下TCP整个流程. 1.建立连接协议(三次握手) (1)客户端发送一个带SYN标志的TCP报文到服务器.这是三次握手过程中的报文1. (2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标志.因此它表示对刚才客户端SYN报文的回应:同时又标志S

    tcpMay 27

  • TCP/IP 协议
    TCP/IP 协议

    [本文参考 http://baike.baidu.com/view/32754.htm] 1.定义 TCP/IP 是 Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议.Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成. TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准,是一组协议族.协议采用了4层的层

    tcp, tcp ip, osi, 三次握手May 14

  • Windows netstat 使用介绍
    Windows netstat 使用介绍

    目标:在Windows环境下,用netstat命令使用 操作: 1 查看该端口被那个PID所占用; 方法一:有针对性的查看端口,使用命令Netstat –ano|findstr "<端口号>",如图,最后一列为PID.图中的端口号为5678,所对应的PID为7844. 方法二:查看所有的,然后找到对应的端口和PID. 可以看到第四行,就是我们要找的进程. 2 查看该PID对应的进程名称 方法一:一直用命令查找,tasklist|findstr "<PID号&

    tcp, netstat, windowMay 10

  • [★更新★]整理发布本人所有博文中提供的代码与工具(C++)

    (有些内容已更改,重新编辑整理并再次发布,望见谅) 为了更方便地管理博文中涉及的各种代码与工具资源,现在把这些资源迁移到 Google Code 中,有兴趣者可前往下载. C++ 1.<[五一呈献]通用高性能 Windows Socket 组件 HP-Socket v2.1.1 正式发布> <基于 IOCP 的通用异步 Windows Socket TCP 高性能服务端组件的设计与实现> <通用异步 Windows Socket TCP 客户端组件的设计与实现> 摘要:

    tcp, socket, OICPMay 9

  • 几种TCP连接中出现RST的情况
    几种TCP连接中出现RST的情况

    应该没有人会质疑,现在是一个网络时代了.应该不少程序员在编程中需要考虑多机.局域网.广域网的各种问题.所以网络知识也是避免不了学习的.而且笔者一直觉得TCP/IP网络知识在一个程序员知识体系中必需占有一席之地的. 在TCP协议中RST表示复位,用来异常的关闭连接,在TCP的设计中它是不可或缺的.发送RST包关闭连接时,不必等缓冲区的包都发出去,直接就丢弃缓存区的包发送RST包.而接收端收到RST包后,也不必发送ACK包来确认. 其实在网络编程过程中,各种RST错误其实是比较难排查和找到原因的.下

    tcp, linux, rst, 网络May 4

  • Java学习-网络编程(TCP)

    今天简单来介绍一下Java的另一种TCP协议下的网络编程.作为开始后先介绍一下什么是Socket(可能讲的有些晚了,应该在上一篇UDP中就进行讲解). Socket也就是平时所说的"套接字",用于描述IP地址和端口.应用程序可以通过使用Socket来向网络发出请求或者应答网络的请求. TCP协议是一种面向连接的协议,也就是说需要在通信的两端形成一条通信的线路.它与打电话的情形相似.如果想要接通一个电话的话,首先要在通信双方建立一条通信的线路(可以物理可以虚拟),当这条线路连通后便可以进

    tcp, Java, socketApril 19

  • TCP-Z V2.6.2 Build 20090409 (半开连接数监控与破解)
    TCP-Z V2.6.2 Build 20090409 (半开连接数监控与破解)

    软件名称: TCP-Z (TCP-Z Network Monitor) 操作系统: Windows XP/2003/Vista/2008/Windows 7, 32bit/64bit 作者邮箱: deepxw#126.com 破解TCP/IP连接数限制,释放网络潜能,下载更快,浏览更流畅. 图表显示网络连接数据,分析下载速度的好帮手. 特色: 1, 快捷安全: 修改内存中的半开连接数限制值,立即生效,无需重启.不修改系统文件Tcpip.sys,安全. 2,兼容性好: 特征码查找,TCP-Z认识所

    tcp, 半开连接数March 14