Cheapos Tcp/ip

一、Tcp/ip

Cheapos中的tcp/ip来看

int listen(int sockfd, int backlog)中的backlog

DESCRIPTION

To  accept  connections, a socket is first created with socket(2), a willingness to accept incoming connections and a queue limit for incoming con-

nections are specified with listen(), and then the connections are accepted with accept(2).  The listen() call applies  only  to  sockets  of  type

SOCK_STREAM or SOCK_SEQPACKET.

The backlog parameter defines the maximum length the queue of pending connections may grow to.  If a connection request arrives with the queue full

the client may receive an error with an indication of ECONNREFUSED or, if the underlying protocol  supports  retransmission,  the  request  may  be

ignored so that retries succeed.

五元组区分,包括源IP地址、源端口、传输层协议号(协议类型)、目的IP地址、目的端口

/proc/sys/net/ipv4/tcp_max_syn_backlog默认128调优1024

/proc/sys/net/core/somaxconn默认128调优1024

只讨论tcp的。

Socket可以为“index”也可以是“实例”【直接的资源】。本实现中即为“实例”。

ØSOCKET * socket(u16 af, u16 type, u16 protocol)

laf/type未用

lprotocoltcp/udp

此函数返回SOCKET TCP_Socket[MAX_TCP_LINKS]中未用的TCP_Socket[i]。

Øu16 bind(SOCKET * sock, struct sockaddr * address, u8 len)

此函数把srv ip/port 赋值给socket[i]中的ip/port,即为绑定。

Øu16 listen(SOCKET * sock,  u16 QTY)

lQTY未用,backlog[The backlog parameter defines the maximum length the queue of pending connections may grow to]

此函数把socket[i].port 赋值给 为0的TCP_PORT_Listening[i]。即把socket[i].port投入使用[listen]。

u16 TCP_PORT_Listening[MAX_TCP_Listening_Ports];/*本地TCP监听端口表*/

u16 Local_PORT_Pool[MAX_Local_PORT_Pool_SIZE];/*本地端口分配表*/

Øu16 accept(SOCKET * sock, struct sockaddr * address, u16 *iii)

此函数返回一个已经握手OK的socket index,供recv/send使用。

到此简单的介绍就结束了,该采取倒叙的手法来归根溯源了。先从recv ethernet frame 说起。

Øethernet

ØIP

8位协议中常用的

ICMP(1)ICMP(2)TCP(6)UDP(17)

ØTCP

ØARP

ARPreq=0x01resp=0x02

RARPreq=0x03resp=0x04

网卡enc28j60

先从第一握手讲起【SYN】

准备:

主动connect的为cli。

cli获取sock资源,bind(一般cli非必须,本例中也只是sock资源中的src.ip/src.port赋值而已)后就connect。

握手

SN:握手场景正常send/recv数据场景是一样的。

1.peer0 send syn时

2.peer1 recv syn后

peer0 recv  syn+ack时,setup SN.peer1。

来自为知笔记(Wiz)

时间: 2024-10-12 14:32:52

Cheapos Tcp/ip的相关文章

http、TCP/IP协议与socket之间的区别

网络由下往上分为:  www.2cto.com 物理层-- 数据链路层-- 网络层--                       IP协议 传输层--                       TCP协议 会话层-- 表示层和应用层--           HTTP协议 1.TCP/IP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接.TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上. 建立起一个TCP连

TCP/IP四层模型和OSI七层模型的概念

转:http://blog.csdn.net/superjunjin/article/details/7841099/ TCP/IP四层模型 TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇.TCP/IP协议簇分为四层,IP位于协议簇的第二层(对应OSI的第三层),TCP位于协议簇的第三层(对应OSI的第四层).   TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求.这4层分别为: 应用层:应用程序间沟通的层,如简单电子邮件传

《TCP/IP详解》

[TCP的那些事儿]TCP是个巨复杂的协议,而且不断地改进中.所以学习TCP本身是个比较痛苦的过程,但这个过程却能让人有很多收获.希望这篇快餐科普性文章能在快餐文化下让你对TCP有了解,并可以促发你对基础知识的兴趣和学习欲望. http://coolshell.cn/articles/11564.html http://coolshell.cn/articles/11609.html 大家知道,TCP/IP已成为计算机网络的事实上的标准.在关于TCP/IP的论著中,最有影响的就是两部著作.一部是

TCP/IP协议,HTTP协议

1. 协议  a. TCP/IP总体构架概述     TCP/IP协议并不全然符合OSI的七层參考模型.传统的开放式系统互连參考模型,是一种通信协议的7层抽象的參考模型,当中每一层运行某一特定任务.该模型的目的是使各种硬件在同样的层次上相互通信.这7层是:物理层.数据链路层.网路层.传输层.话路层.表示层和应用层.而TCP/IP通讯协议採用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完毕自己的需求.这4层分别为:     i.   应用层:应用程序间沟通的层,如超文本传送协议(HTTP

OSI七层模型详解 TCP/IP协议

总结 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 表示层 数据格式化,代码转换,数据加密 没有协议 会话层 解除或建立与别的接点的联系 没有协议 传输层 提供端对端的接口 TCP,UDP 网络层 为数据包选择路由 IP,ICMP,OSPF,EIGRP,IGMP 数据链路层 传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,MTU 物理层 以二进制数据形式在物理媒体上

网络编程TCP/IP实现客户端与客户端聊天

一.TCP/IP协议 既然是网络编程,涉及几个系统之间的交互,那么首先要考虑的是如何准确的定位到网络上的一台或几台主机,另一个是如何进行可靠高效的数据传输.这里就要使用到TCP/IP协议. TCP/IP协议(传输控制协议)由网络层的IP协议和传输层的TCP协议组成.IP层负责网络主机的定位,数据传输的路由,由IP地址可以唯一的确定Internet上的一台主机.TCP层负责面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象. 二.TCP与UDP TCP是一种面向连接的保证可靠传输的协议

第二章 TCP/IP 基础知识

? TCP/IP ?transmission control protocol and ip internet protocol 是互联网众多通信协议中最为著名的. ? 2.2 TCP/IP 的标准化 2.2.2 TCP/IP 标准化精髓 TCP/IP 协议始终具有很强的实用性. 相比于TCP/IP ,OSI 之所以未能达到普及,主要原因在于未能尽早的制定可行性较强的协议.未能提出应对技术快速更新的协议以及没有能及时进行后期的改良的方案. 2.2.3 TCP/IP 规范 --RFC 那些需要标准

TCP/IP协议详解内容总结

TCP/IP协议 TCP/IP不是一个协议,而是一个协议族的统称.里面包括IP协议.IMCP协议.TCP协议. TCP/IP分层: 这里有几个需要注意的知识点: 互联网地址:也就是IP地址,一般为网络号+子网号+主机号 域名系统:通俗的来说,就是一个数据库,可以将主机名转换成IP地址 RFC:TCP/IP协议的标准文档 端口号:一个逻辑号码,IP包所带有的标记 Socket:应用编程接口 数据链路层的工作特性: 为IP模块发送和接收IP数据报 为ARP模块发送ARP请求和接收ARP应答(ARP:

OSI模型和TCP/IP协议栈

OSI(Open System Interconnect )开放系统互连参考模型是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架.这里所说的开放系统,实质上指的是遵循OSI参考模型和相关协议能够实现互连的具有各种应用目的的计算机系统.它从低到高分别是:物理层.数据链路层.网络层.传输层.会话层.表示层和应用层.而TCP/IP协议栈和OSI模型有着对应关系,那么先看一下OSI参考模型.OSI参考模型如下图所