离线cloudera ecosystem components;
http://archive-primary.cloudera.com/cdh4/redhat/5/x86_64/cdh/4.6.0/RPMS/x86_64/
ARP数据包
ARP应答包类似,直接飘过;
子网隐码产生于路由表?;
1.TCP段格式
TCP three-way-handshake;
TCP establish connection:
client: syn 100(0)此处的0表示当前数据段不携带有效负荷,因此数据字节为0,(mss maximum segment size 1460)
server: syn 200(0),ack 101=c_syn+1;
client: ack 201=s_syn+1;(syn序号在网络通讯中用作临时地址,每发一个数据字节syn序号要加1,因此在接收端可以根据序号摆出数据包的顺序,检查是否存在丢包);
mss最大段尺寸,如果一个segment太大,经过ip网络层到达底层链路层封装成帧超过了最大帧size,则就会产生分片fragmentation,传输到接受端时需在ip层分片;
在建立连接的同时,双方协商了一些信息,例如双方发送序号的初始值、最大段尺寸等
应用程序交给TCP协议发送的数据会暂存在TCP层的发送缓冲区中,发出数据包给对方之后,只有收到对方应答的ACK段才知道该数据包确实发到了对方,可 以从发送缓冲区中释放掉了,如果因为网络故障丢失了数据包或者丢失了对方发回的ACK段,经过等待超时后TCP协议自动将发送缓冲区中的数据包重发。
TCP data transfer:
client: 101(20)(S response C syn),201(C response S syn);
server: 201(10),ack 121=c_101+20;
client: ack 211;
TCP close connection:
client: fin,121(0),ack 211;
server: ack 122
server: fin,121(0),ack 122;
client: ack 122; Traffic/flow control
介绍UDP时我们描述了这样的问题:如果发送端发送的速度较快,接收端接收到数据后处理的速度较慢,而接收缓冲区的大小是固定的,就会丢失数据。TCP协议通过'''滑动窗口(Sliding Window)'''机制解决这一问题
Socket Programming;
热身概念:
在TCP/IP协议中,“IP地址+TCP或UDP端口号”唯一标识网络通讯中的一个进程,“IP地址+端口号”就称为socket。
TCP/IP协议最早在BSD UNIX上实现,为TCP/IP协议设计的应用层编程接口称为socket API
在TCP协议中,建立连接的两个进程各自有一个socket来标识,那么这两个socket组成的socket pair就唯一标识一个连接;
Network byte order:
单线程大规模并发网络程序linux 2.5.44>>内核可选IO机制kqueue/epoll/select;
时监听多个阻塞的文件描述符(多网络连接),
哪个有数据到达就处理哪个,这样,不需要fork和多进程就可以实现并发服务的server;
Network Programming;
UDP不需要维护连接,程序逻辑简单
UDP协议是不可靠的,实际上有很多保证通讯可靠性的机制需要在应用层实现
UNIX Domain Socket(IPC internet process connections)与网络socket编程;
RS485单片机;
ZigBee无线通讯协议;
uCOS-II,vXworks嵌入式系统;
tornado-Web 服务器;