HIGH-THROUGHPUT AND MEMORY-EFFICIENT TCP REASSEMBLY FOR NETWORK INTRUSION DETECTION SYSTEM

Size: px
Start display at page:

Download "HIGH-THROUGHPUT AND MEMORY-EFFICIENT TCP REASSEMBLY FOR NETWORK INTRUSION DETECTION SYSTEM"

Transcription

1 HIGH-THROUGHPUT AND MEMORY-EFFICIENT TCP REASSEMBLY FOR NETWORK INTRUSION DETECTION SYSTEM Tran Ngoc Thinh 1, Tran Huy Vu 1, Shigenori Tomiyama 2 1 Faculty of Computer Science and Engineering, University of Technology, Ho Chi Minh city, Vietnam, {tnthinh, vutran}@cse.hcmut.edu.vn 2 School of Information Telecommunication Engineering, Tokai University, Kanagawa-ken, Japan, tomiyama@keyaki.cc.u-tokai.ac.jp Abstract Received Date: September 14, 2012 Most of network data are transmitted using TCP protocol, which need to be reassembled before being processed by applications. However, applications proved that TCP reassembly is memoryhungry and it is usually the bottle neck of a system. In this paper, we propose a method for TCP reassembly, called multi-linked-list method, which can offer high throughput and high memory efficiency. The targeted applications of our system are Network Intrusion Detection Systems (NIDS)s which usually use signature-based matching techniques to protect networks from illegal intrusions. Our proposed method combines reassembly technique with edge buffering to help NIDS detect cross packet intrusion patterns. Our system not only supports TCP connections with up to 4 concurrent holes, but also uses memory more efficiently than others. The experimental results show that our system can operate on 10Gbps network link and hold up to 256K connections simultaneously including up to 46K out-of-sequence connections with only 64MB DRAM. Our system can also support connection timestamp and buffer threshold to prevent some kinds of attacks to our system itself. Keywords: Edge, FPGA, Linked List, Segment Array, TCP Reassembly. Introduction Invited Paper Nowadays network is vital to almost every organization. Many protocols have been invented to transfer data over networks. Out of these protocols, the Transmission Control Protocol (TCP) is the most popular. The authors in [12] showed that more than 90% of network traffic is TCP. In TCP protocol, the data is split into packets, and these packets are transmitted consequently. However, they can arrive at the destination in the wrong order due to transmission error or the network routing mechanism. Therefore, the terminal applications have to reassemble these individual packets to reform the original data. Moreover, many Network Intrusion Detection Systems (NIDS)s are now deployed on networks to prevent illegal intrusion on organizations. These NIDSs usually use signaturebased techniques to detect intrusions. In NIDS database, a signature or a rule is a pattern of bytes which identify a virus, malware, and other illegal intrusions and attacks. The NIDSs scan input byte stream and attempt to match as many signatures as possible. If the signatures are included in a single packet, they can be detected by traditional NIDSs; but if the intrusion patterns expand over packets, and these packets do not arrive in the original order (out-of-sequence), they cannot be detected as described in Figure 1. These NIDSs really need integrated TCP reassembly modules to help them robust against attacks. To describe TCP stream with missing packets, we use two terminologies, one or more continuously missing packets are called a hole, and one or more continuous packets are called a segment. The easiest way to reassemble TCP packet is to buffer all out-ofsequence packets before sending them to the applications. Due to the flow control ASEAN Engineering Journal, Vol 1 No 1, ISSN X, e-issn p.13

2 mechanism and the window size scaling scheme [13], the system can have to buffer up to 1GB for each direction of a connection. The problem is even much more difficult for backbone network, whose throughput can reach tens of Gbps and there can be a large amount of connections established on that link. For such networks, a TCP reassembly system has to support not only the high throughput, but also a large number of concurrent connections. In addition, NIDS applications need to scan a whole data stream; however, a TCP stream is usually interleaved by other streams. So a TCP reassembly needs to help NIDSs scanning these types of stream correctly. There are several techniques in NIDSs to detect intrusion patterns. Some use state machine methods such as Aho-Corrasick [8], but the others do not use an explicit state machine such as hashing techniques. For the former case, the TCP reassembly system can store and load the current state of the state machine. But for the latter case, the applications do not have an explicit state machine to be stored and loaded. In general, our targeted system can support ten-gigabit network, manage hundred thousands of concurrent connections, support both types of NIDSs, and use memory efficiently. In this paper, we implement a TCP reassembly system which is developed from our previous research in [14]. In that research, we implemented a TCP reassembly system, which can support 1Gbps network, up to 256K concurrent connections with multi-hole connections and using only 64MB DRAM. The new system is improved to support the data bit-width up to 64-bit and reach a throughput of 10Gbps. Moreover, it supports two operational modes; the mode edge-disable for NIDSs which deploy an explicit state machine and do not need to scan part of the previous packet, and the mode edge-enable for NIDSs which have to re-scan the overlapping edge of the previous packet to detect crosspacket patterns. We calculate the throughput for these two modes independently. We also implement timestamp and buffer threshold to avoid some attacks to our system itself. Conn.1 Conn.2 this http: www Dropped Conn.1 is an attack is an pattern NIDS engine This should be assembled as: this is an attack pattern Related Work Figure 1. Out-of-sequence packets passing an NIDS Several researches have been proceeded to design TCP reassembly systems [1, 2, 3, 4, 5]. In these researches, FPGA is usually used as a development platform because it supports high speed processing and easy to update. Consequently, almost these researches try to avoid the complexity of memory management because maintaining some data structures, which can be done easily in software manner, becomes very difficult in hardware manner. The TCP Processor in [4] uses the retransmission mechanism to reorder the out-ofsequence packets. It drops all out-of-sequence packets so that the source terminal will retransmit all packets that have not come in the right order. The advantages of this approach are simplicity, memory efficiency. It simply updates the sequence number of insequence packets so far, and compares the sequence number of a coming packet to determine if the packet is in-sequence or out-of-sequence. Because all out-of-sequence packets are dropped, reassembly memory is not necessary. However, this method causes the network traffic to be heavier with retransmitted packets, and may prevent the destination terminal from efficient acknowledgement. Moreover, though the percentage of out-of-sequence connection is little, these connections are usually long connections; the ASEAN Engineering Journal, Vol 1 No 1, ISSN X, e-issn p.14

3 number of retransmitted packets can be very large. The authors chose this approach because a statistical result in [7] shows that only about 5% of TCP packets are out-ofsequence. But these statistics are quite out of date, newer researches show that the out-ofsequence percentage is even much higher, about 20%. Therefore, dropping out-ofsequence packets by the TCP reassembly system is not efficient because it causes the retransmission of all these packets. To make the TCP reassembly more efficient, Sarang Dharmapurikar and Vern Paxson in [2] use linked-list data structure to store the out-of-sequence packets. Because of the high complexity of management of multi-hole TCP connections, they limited the number of holes in a connection to only one hole. Any packet which creates more than one hole at a time is dropped. In this system, DRAM is utilized to store out-of-sequence packets since its large volume, and the memory is divided into blocks. Each packet can be stored in more than 1 block, 1 block can contain more than 1 packet, so the memory utilization is more efficient. If a segment have to be stored in many blocks, these blocks are linked together to form a linked-list. The reason that they decide to supports only one hole is based on their studies that more than 95% of out-of-sequence connections contain only one hole. However, newer studies in [1] show that the number of 2-hole and 3-hole connections can reach 21% of the out-of-sequence streams. Because the percentage of multi-holes connections is considerable, it is necessary to covers these connections. Palak Agarwal in [5] also uses the approach of linked list for his TCP reassembly module, which is part of his NIDS system. This system actually uses associated linked-list of packets rather than linked-list of memory blocks. Both SRAM and DRAM are utilized to construct the data structure to store out-of-sequence packets. The information of each out-of-sequence packet is stored in SRAM as control blocks, and these blocks are linked together to form a linked list. The real packets are stored in DRAM, each packet is retrieved by a pointer in a corresponding control block in SRAM. Although this method allows multi-hole connections, the data structure is not memory-efficient. This system has to reserve maximum DRAM space, for example 1500 bytes, for each out-of-sequence packet, so it can waste a lot of DRAM memory. Moreover, in almost FPGA platforms, the SRAM volume is quite small; it cannot contain a large number of the control blocks which consist of 16 bytes for each. In another approach [1], the authors use a buffer for each out-of-sequence connection, but the size of the buffer is fixed and every out-of-sequence connection has only one buffer. If an out-of-sequence TCP packet comes, its sequence number is used to compute the offset from the beginning of the buffer to store the packet. This method is not efficient because a large segment cannot be contained in a buffer, but a tiny segment can waste a lot of memory in the buffer. In this paper, the authors use two statistical results; the first is from Cooperative Association for Internet Data Analysis (CAIDA_10G), and the second is statistics of a backbone network of a city which is recorded by the authors themselves. These results show that the mean size of packet is about 500 bytes, and more than 70% out-of-sequence connections are 1-hole connections. According to the authors, the recommended buffer size is 64KB. It means that more than 70% of utilized 64KB-buffer blocks are filled with only 500 bytes. In addition, because of the large size of buffer, this system does not support large number of concurrent out-of-sequence connections. Sugawara et al. introduce a new approach in [3], which does not need to buffer a whole packet. Although this research does not attempt to design a TCP reassembly system, its techniques can be useful to implement a TCP reassembly which is part of an NIDS. In this design, the system has to buffer only data at two ends of a packet, the length of buffered data equals the maximum length of rules, assumed as l. The first l-byte data of packet payload is called the starting edge; the last l-byte data of packet payload is called the ASEAN Engineering Journal, Vol 1 No 1, ISSN X, e-issn p.15

4 ending edge. This technique does not require reordering packets. By rescanning the starting edge and the ending edge of succeeded or preceded packet correspondingly, the system can detect cross-packet intrusion patterns whose lengths are less than or equal to l. However, this technique can only be applied to static scanning engines because the maximum length of a pattern is priory known. In practice, many applications use both static pattern and regular expression (RE). The length of a string, which matches an RE, cannot be priory known. In summary, based on the above analysis, we design our TCP reassembly system with multiple techniques to gain high memory efficiency, high throughput and best support for NIDSs. Multi-linked-list Approach In the above approaches, the design in [2] shows its efficient memory utilization, but it has the disadvantages as stated above. In our design, we also use one linked list to store the payload of packets in the same segment. Because the data in the same segment are consecutive, they are suitable to be stored in a linked-list of memory blocks. A modification of edge buffering scheme [3] is also applied to this system. To support connections with more than 1 hole, each out-of-sequence connection uses an array to manage several holes. Each array element has a pointer to refer to a segment, so the array size is the maximum concurrent holes in a connection. Studies [1] show that 99% out-ofsequence connections have less than 4 concurrent holes. Moreover, if a connection has too many holes, buffering all out-of-sequence packets is not as efficient as dropping the packets so that the source machine will retransmit packets to fill some holes. Therefore, in our design, we limit the number of concurrent holes in a connection to 4, and thus the array size is 4. When an out-of-sequence packet arrives at the system, there are four cases to manipulate the segment array: allocating a new linked list, inserting packet payload to an existing linked list, merging two existing linked lists, and releasing an existing linked list. However, if an out-of-sequence packet makes the number of concurrent holes in the corresponding connection exceed the size of the segment array, the packet is dropped. Structure of a segment array element (Seg.i) Start seq. Next seq. Head Blk.2 Blk.3 Blk.8 Blk.9 Blk.4 Blk.1 Blk.5 Blk.7 Blk.0 Tail segment array Seg.0 Seg.1 Seg.2 Seg.3 Blk.6 Memory block (Blk.i) linked lists Figure 2 Multi-link-list method in combination with edge buffering scheme Figure 2 describes the data structure of the out-of-sequence buffer. Each segment array element contains following information. Start seq.is the sequence number of the first byte of the segment. Next seq. is the next expected sequence number of the segment. Head is address of the first byte of the segment in DRAM. Tail is address of the last byte of the Seg.0 Each linked list stores data of a segment Structure of segment array Start seq.0 Next seq.0 Start seq.1 Next seq.1 Start seq.2 Next seq.2 Start seq.3 Next seq.3 Head 0 Tail 0 Head 1 Tail 1 Head 2 Tail 2 Head 3 Tail 3 Structure of a memory block Data len. Next ptr. Packet0 data Packet0 data Packet0 data Packet1 data Packet1 data ASEAN Engineering Journal, Vol 1 No 1, ISSN X, e-issn p.16

5 segment in DRAM. For fast retrieving of each segment, we construct the segment array in a special way. All sequence fields are consecutive, all address fields are consecutive, and so the sequence fields and the address fields of a segment are not consecutive. We use this data structure because we want to arrange the sequence fields so that many sequence fields can be read in one DRAM access. Moreover, the system can operate on the sequence fields and the address fields separately. When a packet comes, the first stage of the system accesses sequence fields quickly, determines the action to be issued, and requests the second stage to proceed the action. This operation can be done in one DRAM access. The real operation on the packet payload, which can require much time, is carried out by the second stage independently. Because of this independence, the reassembly operation is pipelined, and does not impact on the throughput of the system. Another issue is to manage the data in a segment efficiently. We divide memory space into blocks; the structure of a block is simple as in Figure 3.a. Data len. is the number of valid data bytes stored in the block. Next ptr. is the address of next block in the same linked list. The Data of each segment is stored in a linked list of blocks. The addresses of the linked lists and the Next ptr are not necessary aligned with the block address; this situation occurs when the payload of a packet is pre-pended to an existing linked list. If the payload of a packet is larger than the block size, it is stored in 2 or more blocks. If the payload of a packet is smaller than the block size, the next packet in the same segment can fill in that block. In pattern matching systems, there are matching engines which do not deploy an explicit Finite State Machine (FSM). For example, some NIDSs use hashing methods, such as Bloom filter [10] or Cuckoo hashing [9], to match static patterns. In such situations, the system cannot reassemble packets by loading and storing FSM of the matching engine. In this paper, we apply the idea of One-edge and Two-edge buffering scheme [3] to store the overlapped data between packets. However, TCP packets are ordered by using multilinked-list method, the edge buffering scheme can be simplified as in Figure 3.A. When the packets are ordered, only the ending edge of each packet is needed to be stored and rescanned. Though the system can store a long ending edge to cover all patterns, the system has to re-scan a lot of data, and thus the throughput of the system is decreased. So the length of edge-data should be carefully chosen. In this paper, based on the rule set of our targeted NIDS, we choose the edge length of 32 bytes. A Edge pkt.1 Edge pkt.0 B Source IP Dest. IP Packet 2 Store edge l byte edge Packet 1 Store edge Packet 0 Store edge Packet data Source Port Dest. Port Buffer address Sequence App. FSM Figure 3. A - Modified Edge-buffering scheme; B- Structure of a connection record(cr) To manage the status of each connection, a Conection Record (CR) is used; the detail of a CR is described in Figure 3.B. Each TCP connection is identified by 4 fields: Source IP, Dest. IP, Source Port, Dest. Port. All packets have the same value of these fields belong to the same connection and the Sequence number indicates the order of the packet in the connection. The Flags include SYN and ACK flags to manage 3-way hand shaking scheme in TCP connection establishment; another flag is EST indicates the record is occupied. Buffer address is a pointer to refer to a segment array of the connection. For matching engines using an algorithm with an explicit FSM, such as Aho-Corasick [8], the FSM is stored to/ loaded from the App. FSM. The field of Timestamp is a relational time value; it indicates how long a CR has been in memory. It is used to determine whether a Flags Timestamp Buffer size Reserved ASEAN Engineering Journal, Vol 1 No 1, ISSN X, e-issn p.17

6 CR should be replaced by a new one or not. If hash collision occurs during the arrival of a new packet, the Timestamp is check. If the Timestamp exceeds a threshold, the CR will be replaced by the new one; otherwise, the new packet is dropped. Whenever a CR is successfully retrieved, its Timestamp field is updated to the present. This technique is to cope with SYN flooding and connections which are not properly closed. Buffer size is the current size of the buffer to store out-of-sequence packet. If an out-of-sequence packet causes the Buffer size to exceed a threshold, it is dropped. This policy is to avoid the buffer over flow attacks to the TCP-reassembly system itself. Implementation Figure 4 is the block diagram of our system. Input Controller receives each packet from network, extracts information in packet header includes IP addresses, TCP ports, sequence number and flags, and then send them to the Flow Controller. It also calculates the TCP checksum and signals Flow Controller with checksum error. Besides, Input Controller sends packets to Packet Buffer. The main function of Packet Manager is to temporarily store packets, which are received from Input Controller, in a FIFO. This FIFO is able to remove a whole packet, or continuously read out the data byte by byte. Output Controller controls the dropping, forwarding, etc. of packets. If a packet needs to be dropped, it requests Packet Manager to remove the packet from FIFO, or else it requests Packet Manager to read a packet out. In case a packet is forwarded, it will send the packet to network only. But if a packet has to be buffered in memory or passed to NIDS engine, the Output Controller sends the packet to Reassembler module as well. Flow Controller manages connection records. When a packet arrives, it accesses the connection record, compares the sequences to decide an appropriate action on the packet. Flow identification consists of 96 bits, including source IP, destination IP, source port and destination port. It is impossible to use the 96-bit identification directly as the address to access memory. In our system, we use hashing technique to solve this problem; an 18-bit hash value, which is calculated from 96-bit identification, is used as the address to retrieve connection record in memory. The sequence number of the coming packet is then compared to the number in connection record. Based on the comparison result, there may be 4 types of actions: dropping, forwarding, buffering and sending a packet to application. The Flow Controller also accesses the sequence fields in the segment array of the connection to determine extra parameter for the action. The parameters can be insertion a packet to a segment, reading out a packet from a segment, or merging 2 segments. If a packet is the first out-of-sequence packet, Flow Controller requests Memory Controller to allocate a new segment array. The segment array address and record address are also sent to reassemble as extra parameters. Packets Input Controller Packet Manager Output Controller To network Connection information Flow Controller Conn. Record mng. O.S. buffer check Command Ext. param rsm FIFO Reassembler Pkt FIFO dsm FIFO To App. App.FSM Conn. records Memory Controller DRAM payload Figure 4. Architecture of TCP Reassembler ASEAN Engineering Journal, Vol 1 No 1, ISSN X, e-issn p.18

7 Reassembler is the main module of our system and is used to manage reassembly memory. The detail management of reassembly memory is described in section 3. Reassembler receives commands from Flow Controller and requests Output Controller to read out or remove a packet. If it receives a command to send a packet to application circuit, the extra parameters indicate whether to read out a segment or not. If it receives a command to buffer a packet, the extra parameters indicate the position to insert the packet. Rsm FIFO is used to keep packets to be buffered, and Dsm FIFO is used to keep packets read out from memory. Another FIFO, named Pkt FIFO, is used to keep packets from the Output Controller. When a packet is completely read out from Pkt FIFO and sent to application, the Dsm FIFO is read if it has any data. Reassembler can request Output Controller to drop a packet if that packet creates more than 4 holes in the corresponding connection. Output Controller requests Packet Buffer to remove a packet or read out a packet. A packet can be sent to both network and Reassemler, or sent to network only. Memory controller arbitrates read and write requests from Flow Controller and Reassembler; it also controls the allocating or releases of a memory blocks. The real packet payload is stored in memory blocks; the size of memory block is 1KB. The segment array size is 32 bytes. Memory Controller maintains 2 FIFOs to store addresses of buffer blocks and segment arrays correspondingly. One FIFO is used for allocating and releasing of memory blocks, another is used for allocating and releasing of segment arrays. When it allocates a memory block or a segment array, it reads the corresponding FIFO, and return the address which has been read out. When a memory block or segment array is released, the address of the block or segment array is written to the corresponding FIFO. Evaluation To evaluate our approach, we synthesize our design as described in section 4 on Virtex2- Pro FPGA chip. We use Xilinx ISE 10.1i for synthesis and timing simulation. The synthesis results show that our design can operate at clock rate of 157MHz. One of the typical clock rate is MHz, our system can process 64-bit data in each clock pulse, so the raw maximum throughput is MHz*64b or 10Gbps. However, since the TCP characteristics and overhead of the system, the real throughput is a little bit lower. The number of occupied slices is about 18% of total slices of Virtex2-Pro. So our TCP reassembly system can be fully integrated into Virtex2-Pro along with an application circuit such as NIDS. Our system uses 16MB DRAM to store connection records. In edging-enable mode, a 32-byte edge buffer is placed next to each connection record, so the maximum number of connection records is 16MB/(32B+32B) or 256K; however, in the edging-disable mode, the number is 16MB/32B or 512K. Our system uses 46MB DRAM to store out-of-sequence packets with the block size is 1KB, so it can hold maximum 46K out-of-sequence connections. It also uses 2MB DRAM to store up to 64K segment arrays. The total used memory is 64MB. Throughput The throughputs depend on the packet lengths, the percentage of out-of-sequence packets, as well as the edge length to be stored. Therefore, we evaluate our system in two operational modes, the edge-disable and the edge-enable mode, which are shown in Figure 5 and Figure 6. The packet payload lengths are chosen from 1 to 1450 bytes. The curve named Max shows the maximum throughput that can be reached on wire. Although the speed of Ethernet link is 10Gbps, the overhead of each packet slows down the maximum throughput. Ethernet protocol requires an inter-frame-gap, preamble, start-of-frame delimiter and CRC code between two frames; for 10Gbps link, these values are 5, 7, 1, 4 ASEAN Engineering Journal, Vol 1 No 1, ISSN X, e-issn p.19

8 bytes correspondingly. Therefore, the throughput achieves almost 10Gbps with large packets but it is sharply decreased with small packets. The other curves show the throughput of the system with out-of-sequence percentage is 0%, 5% and 10% correspondingly. These numbers are typical out-of-sequence percentage numbers. At first, the system is tested in edge-disable mode as illustrated in Figure 5. In this mode, the system does not store and load the edge data, so the throughput of our system can reach the maximum throughput when the percentage of out-of-sequence packets is 0%. When this number changes to 5% and 10%, the throughput is slightly decreased. The evaluation of the edge-enable mode is shown in Figure 6. In this mode, the system loads and stores 32- byte edge data for each TCP packet. These numbers are measured with the edge length of 32 bytes. With a very small packet, for instance 1 byte of payload, the ratio between payload length and edge length is very small, and the system has to wait for DRAM read operation to be completed. So the throughput decreases sharply. With large packets, though the ratio is high, the out-of-sequence packets can also decrease the throughput of the system. However, these packets can be transmitted during the inter-frame gap of the incoming packets so that the throughput is slightly decreased Throughput (Gbps) Packet payload length (Bytes) 0% 5% 10% Max Figure 5. Throughput of TCP Reassembly system in edge-disable mode ASEAN Engineering Journal, Vol 1 No 1, ISSN X, e-issn p.20

9 Throughput (Gbps) Packet payload length (Bytes) 0% 5% 10% Max Memory Utilization Figure 6. Throughput of TCP reassembly system in edge-enable mode In Figure 7, the memory utilizations of three cases, 0%, 5% and 10% out-of-sequence packets are shown. The packet payload lengths are also chosen in a range from 1 to In case of 5% and 10% out-of-sequence packets, the number of out-of-sequence packets in a single connection is from 1 to 4. We choose this range because our design support maximum 4 concurrent holes in a connection; moreover, we analyzed a network data set which is recorded by Lincoln Laboratory and found that the number of concurrent holes in a connection is also less than Memory usage (MB) Number of concurrent flows (x1000) 0% 5% 10% Figure 7. Memory footprint ASEAN Engineering Journal, Vol 1 No 1, ISSN X, e-issn p.21

10 Packet drop rate 20.00% 18.00% 16.00% 14.00% 12.00% 10.00% 8.00% 6.00% 4.00% 2.00% 0.00% Number of concurrent flows (x1000) Concurrent Flows Figure 8 measures the drop rate as increasing the number of concurrent flows. The drop rate dramatically increases when the number of concurrent flows exceeds 150K because of the hash collision. Actually, many of these cases are caused by connections in idle state for a long time. To cope with this issue, we use timestamp to replace these connections by new coming connections when collision occurs. As stated previously, our design stores connection records in a hash table. A full hash table can contain 256K elements. However, a hash table is typically limited to a half-full table. Although our system can support 256K concurrent connections in ideal case, we recommend applying our system to networks which have less than 128K concurrent connections. Comparison Figure 8. Drop rate of the system at different number of concurrent flows We also compare our system to other systems. We do not compare our system with the system in [3] because that system uses the method of out-of-order matching, and thus does not need to reorder out-of-sequence packets. We assume the network traffic conforms to the CAIDA_10G in [1]. Table I shows that our system can support out-of-sequence connections more than 98.8% compared to 89.6% in the system in [2]. Theoretically, the fixed length buffer method [1] and simple linked list method [5] can support more than 4 concurrent holes in a single connection. However, the number of connections with more than 4 holes is very small, so dropping packets which create more than 4 holes in a connection are more practical. In Table II, we compare the memory utilizations of our system with other systems. Because the design in [2] supports only single-hole connections, we compare the memory utilizations for single-hole connections only. In addition, we use simulation results to compare with other designs because our hardware system has only 64MB of memory. The first column is the number of out-of-sequence packets in a single-hole connection. In fixed length buffer method [1], the authors recommend each out-of-sequence connection have a minimum buffer of 16KB. Based on the statistical data in [1], the mean packet size is 441 ASEAN Engineering Journal, Vol 1 No 1, ISSN X, e-issn p.22

11 bytes, so buffering 64K connections requires 1024MB of memory. In 1-hole linked list method [2], the recommended page size is 2KB, so the memory requirements in the first two rows are 128MB instead. If this system uses the page size of 1KB, the memory requirement is a 4MB smaller than the memory requirement of our system as illustrated in the table. However, this system cannot handle connections with more than 1 hole. In simple linked list method [5], the system uses linked list of packets, so the system has to reserve a large space enough to store a biggest packet. The recommended buffer size is 1500 bytes, so the memory requirement is calculated in the table. However the mean packet size is 441 bytes, so this method is inefficient either. In general, the results show that our system uses memory more efficient than the others. Table 1. Number of Concurrent Holes in a Connections Number of holes in 1 connection Percentage Fixed buffer [1] 1-hole linked list [2] Simple linked-list [5] Our system % support support support support 2 7.3% support support support 3 1.9% support support support 4 1.2% support support support-4 Total 100% 100% 89.6% 100% >98.8% Table 2. Memory Utilization of Our System and Other Systems for Buffering 64k Single-hole Connections Number of Fixed buffer 1-hole linked Simple linkedlist Our system packets in 1 segment [1] list [2] [5] MB 64MB 93.75MB 68MB MB 64MB 187.5MB 68MB MB 128MB MB 132MB MB 128MB 375MB 132MB Conclusion In this paper, we present a technique of TCP reassembly. We focus on multi-linked list method to manage the memory of out-of-sequence packets, which is efficient and easy to scale up in the future. Besides, the edge buffering scheme is also deployed to detect crosspacket intrusion patterns in signature scanning engine. Our architecture supports connections with multiple concurrent holes, and it can support up to 99% of out-ofsequence connections. Moreover, our system supports a throughput at approximately 10Gbps. Experimental results show that our system can hold up to 256K concurrent connections and 46K out-of-sequence connections with only 64MB DRAM. In the future, we plan to implement an enhanced function, which will resolve the hash collision problem. References [1] R. Yuan, W. Yang, M. Chen, X. Zhao, and J. Fan, Robust TCP Reassembly with a hardware-based solution for backbone traffic, The Fifth IEEE International Conference on Networking, Architecture and Storage, pp , ASEAN Engineering Journal, Vol 1 No 1, ISSN X, e-issn p.23

12 [2] S. Dharmapurikar, and V. Paxson, Robust TCP Reassembly in the presence of adversaries, The 14th conference on USENIX Security Symposium, Vol. 14, pp , [3] Y. Sugawara, M. Inaba, and K Hiraki,., High-speed and memory efficient TCP stream scanning using FPGA, Field Programmable Logic and Applications International Conference, pp , [4] D.V. Schuehler, Techniques for Processing TCP/IP Flow Content in Network Switches at Gigabit Line Rates, Thesis (PhD),Washington University, United States, [5] P. Agarwal, TCP Stream Reassembly and Web Base guide for Sachet IDS, Thesis (Master), Indian Institute of Technology, India, [6] H. Chen, Y. Chen, and D. H. Summerville, A Survey on the Application of FPGAs for Network Infrastructure Security, the IEEE Communications Surveys and Tutorials, pp. 1-21, [7] S. Jaiswal, G. Iannaccone, C. Diot, J. Kurose, and D. Towsley, Measurement and Classification of Out-of-sequence Packets in a Tier-1 IP Backbone, Technical Report CS Dept. Tech. Report 02-17, UMass, pp , [8] D. Pao, W. Lin, and B. Liu, A memory-efficient pipelined implementation of the Aho- Corasick string matching algorithm, ACM Transactions on Architecture and Code Optimization, Vol. 7, No. 2, pp.1-27, [9] T. N. Thinh, S. Kittitornkun, and S. Tomiyama, Applying cuckoo hashing for FPGAbased pattern matching in NIDS/NIPS, International Conference on Field Programmable Technology, 2007, pp [10] B.T. Hieu, N. D. A. Tuan, and T. N. Thinh, BBFex: An efficient FPGA-based design for long patterns in Pattern matching system. International Conference on Intelligent Network and Computing, pp , [11] Net FPGA Technical Specifications, Available: [Accessed: August, 2012] [12] B. Shihada and P.H. Ho, Transport control protocol in optical burst switched networks: Issues, solutions and challenges. The IEEE Communications Surveys and Tutorials, Vol. 10, No.2, pp , [13] TCP Extension for High Performance, Available: [Accessed: August, 2012] [14] T.N. Thinh, S. Kittitornkun, S. Tomiyama and T.H. Vu, TCP Reassembly for Signature-based Network Intrusion Detection Systems, IEEE International Conference Electrical Engineering/Electronics, Computer, Telecommunications and Information Technology, pp. 1-4, ASEAN Engineering Journal, Vol 1 No 1, ISSN X, e-issn p.24

Robust TCP Stream Reassembly In the Presence of Adversaries

Robust TCP Stream Reassembly In the Presence of Adversaries Robust TCP Stream Reassembly In the Presence of Adversaries Sarang Dharmapurikar and Vern Paxson Washington Univ. UC Berkeley Usenix Security 2005 Presented by N. Sertac Artan Motivation TCP Reassembly

More information

PERG-Rx: An FPGA-based Pattern-Matching Engine with Limited Regular Expression Support for Large Pattern Database. Johnny Ho

PERG-Rx: An FPGA-based Pattern-Matching Engine with Limited Regular Expression Support for Large Pattern Database. Johnny Ho PERG-Rx: An FPGA-based Pattern-Matching Engine with Limited Regular Expression Support for Large Pattern Database Johnny Ho Supervisor: Guy Lemieux Date: September 11, 2009 University of British Columbia

More information

Toward a Reliable Data Transport Architecture for Optical Burst-Switched Networks

Toward a Reliable Data Transport Architecture for Optical Burst-Switched Networks Toward a Reliable Data Transport Architecture for Optical Burst-Switched Networks Dr. Vinod Vokkarane Assistant Professor, Computer and Information Science Co-Director, Advanced Computer Networks Lab University

More information

CS 5520/ECE 5590NA: Network Architecture I Spring Lecture 13: UDP and TCP

CS 5520/ECE 5590NA: Network Architecture I Spring Lecture 13: UDP and TCP CS 5520/ECE 5590NA: Network Architecture I Spring 2008 Lecture 13: UDP and TCP Most recent lectures discussed mechanisms to make better use of the IP address space, Internet control messages, and layering

More information

Network Technology 1 5th - Transport Protocol. Mario Lombardo -

Network Technology 1 5th - Transport Protocol. Mario Lombardo - Network Technology 1 5th - Transport Protocol Mario Lombardo - lombardo@informatik.dhbw-stuttgart.de 1 overview Transport Protocol Layer realizes process to process communication data unit is called a

More information

Extreme TCP Speed on GbE

Extreme TCP Speed on GbE TOE1G-IP Introduction (Xilinx) Ver1.1E Extreme TCP Speed on GbE Design Gateway Page 1 Agenda Advantage and Disadvantage of TCP on GbE TOE1G-IP core overview TOE1G-IP core description Initialization High-speed

More information

Configuring attack detection and prevention 1

Configuring attack detection and prevention 1 Contents Configuring attack detection and prevention 1 Overview 1 Attacks that the device can prevent 1 Single-packet attacks 1 Scanning attacks 2 Flood attacks 3 TCP fragment attack 4 Login DoS attack

More information

Chapter 4. Routers with Tiny Buffers: Experiments. 4.1 Testbed experiments Setup

Chapter 4. Routers with Tiny Buffers: Experiments. 4.1 Testbed experiments Setup Chapter 4 Routers with Tiny Buffers: Experiments This chapter describes two sets of experiments with tiny buffers in networks: one in a testbed and the other in a real network over the Internet2 1 backbone.

More information

Project Proposal. ECE 526 Spring Modified Data Structure of Aho-Corasick. Benfano Soewito, Ed Flanigan and John Pangrazio

Project Proposal. ECE 526 Spring Modified Data Structure of Aho-Corasick. Benfano Soewito, Ed Flanigan and John Pangrazio Project Proposal ECE 526 Spring 2006 Modified Data Structure of Aho-Corasick Benfano Soewito, Ed Flanigan and John Pangrazio 1. Introduction The internet becomes the most important tool in this decade

More information

TCP-Splitter: A Reconfigurable Hardware Based TCP/IP Flow Monitor

TCP-Splitter: A Reconfigurable Hardware Based TCP/IP Flow Monitor CP-Splitter: A Reconfigurable Hardware Based CP/IP Flow Monitor David V. Schuehler dvs1@arl.wustl.edu John W. Lockwood lockwood@arl.wustl.edu Applied Research Laboratory (ARL) Department of Computer Science

More information

NWEN 243. Networked Applications. Layer 4 TCP and UDP

NWEN 243. Networked Applications. Layer 4 TCP and UDP NWEN 243 Networked Applications Layer 4 TCP and UDP 1 About the second lecturer Aaron Chen Office: AM405 Phone: 463 5114 Email: aaron.chen@ecs.vuw.ac.nz Transport layer and application layer protocols

More information

Outline Computer Networking. TCP slow start. TCP modeling. TCP details AIMD. Congestion Avoidance. Lecture 18 TCP Performance Peter Steenkiste

Outline Computer Networking. TCP slow start. TCP modeling. TCP details AIMD. Congestion Avoidance. Lecture 18 TCP Performance Peter Steenkiste Outline 15-441 Computer Networking Lecture 18 TCP Performance Peter Steenkiste Fall 2010 www.cs.cmu.edu/~prs/15-441-f10 TCP congestion avoidance TCP slow start TCP modeling TCP details 2 AIMD Distributed,

More information

OSI Transport Layer. Network Fundamentals Chapter 4. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1

OSI Transport Layer. Network Fundamentals Chapter 4. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1 OSI Transport Layer Network Fundamentals Chapter 4 Version 4.0 1 Transport Layer Role and Services Transport layer is responsible for overall end-to-end transfer of application data 2 Transport Layer Role

More information

Enabling Gigabit IP for Intelligent Systems

Enabling Gigabit IP for Intelligent Systems Enabling Gigabit IP for Intelligent Systems Nick Tsakiris Flinders University School of Informatics & Engineering GPO Box 2100, Adelaide, SA Australia Greg Knowles Flinders University School of Informatics

More information

Configuring attack detection and prevention 1

Configuring attack detection and prevention 1 Contents Configuring attack detection and prevention 1 Overview 1 Attacks that the device can prevent 1 Single-packet attacks 1 Scanning attacks 2 Flood attacks 3 TCP fragment attack 4 Login DoS attack

More information

A Framework for Rule Processing in Reconfigurable Network Systems

A Framework for Rule Processing in Reconfigurable Network Systems A Framework for Rule Processing in Reconfigurable Network Systems Michael Attig and John Lockwood Washington University in Saint Louis Applied Research Laboratory Department of Computer Science and Engineering

More information

High Ppeed Circuit Techniques for Network Intrusion Detection Systems (NIDS)

High Ppeed Circuit Techniques for Network Intrusion Detection Systems (NIDS) The University of Akron IdeaExchange@UAkron Mechanical Engineering Faculty Research Mechanical Engineering Department 2008 High Ppeed Circuit Techniques for Network Intrusion Detection Systems (NIDS) Ajay

More information

STEVEN R. BAGLEY PACKETS

STEVEN R. BAGLEY PACKETS STEVEN R. BAGLEY PACKETS INTRODUCTION Talked about how data is split into packets Allows it to be multiplexed onto the network with data from other machines But exactly how is it split into packets and

More information

RD-TCP: Reorder Detecting TCP

RD-TCP: Reorder Detecting TCP RD-TCP: Reorder Detecting TCP Arjuna Sathiaseelan and Tomasz Radzik Department of Computer Science, King s College London, Strand, London WC2R 2LS {arjuna,radzik}@dcs.kcl.ac.uk Abstract. Numerous studies

More information

A Study on Intrusion Detection Techniques in a TCP/IP Environment

A Study on Intrusion Detection Techniques in a TCP/IP Environment A Study on Intrusion Detection Techniques in a TCP/IP Environment C. A. Voglis and S. A. Paschos Department of Computer Science University of Ioannina GREECE Abstract: The TCP/IP protocol suite is the

More information

Summary of MAC protocols

Summary of MAC protocols Summary of MAC protocols What do you do with a shared media? Channel Partitioning, by time, frequency or code Time Division, Code Division, Frequency Division Random partitioning (dynamic) ALOHA, S-ALOHA,

More information

QUIZ: Longest Matching Prefix

QUIZ: Longest Matching Prefix QUIZ: Longest Matching Prefix A router has the following routing table: 10.50.42.0 /24 Send out on interface Z 10.50.20.0 /24 Send out on interface A 10.50.24.0 /22 Send out on interface B 10.50.20.0 /22

More information

NET ID. CS519, Prelim (March 17, 2004) NAME: You have 50 minutes to complete the test. 1/17

NET ID. CS519, Prelim (March 17, 2004) NAME: You have 50 minutes to complete the test. 1/17 CS519, Prelim (March 17, 2004) NAME: You have 50 minutes to complete the test. 1/17 Q1. 2 points Write your NET ID at the top of every page of this test. Q2. X points Name 3 advantages of a circuit network

More information

Internet Layers. Physical Layer. Application. Application. Transport. Transport. Network. Network. Network. Network. Link. Link. Link.

Internet Layers. Physical Layer. Application. Application. Transport. Transport. Network. Network. Network. Network. Link. Link. Link. Internet Layers Application Application Transport Transport Network Network Network Network Link Link Link Link Ethernet Fiber Optics Physical Layer Wi-Fi ARP requests and responses IP: 192.168.1.1 MAC:

More information

Review. Error Detection: CRC Multiple access protocols. LAN addresses and ARP Ethernet. Slotted ALOHA CSMA/CD

Review. Error Detection: CRC Multiple access protocols. LAN addresses and ARP Ethernet. Slotted ALOHA CSMA/CD Review Error Detection: CRC Multiple access protocols Slotted ALOHA CSMA/CD LAN addresses and ARP Ethernet Some slides are in courtesy of J. Kurose and K. Ross Overview Ethernet Hubs, bridges, and switches

More information

Lixia Zhang M. I. T. Laboratory for Computer Science December 1985

Lixia Zhang M. I. T. Laboratory for Computer Science December 1985 Network Working Group Request for Comments: 969 David D. Clark Mark L. Lambert Lixia Zhang M. I. T. Laboratory for Computer Science December 1985 1. STATUS OF THIS MEMO This RFC suggests a proposed protocol

More information

Introduction to Networks and the Internet

Introduction to Networks and the Internet Introduction to Networks and the Internet CMPE 80N Announcements Project 2. Reference page. Library presentation. Internet History video. Spring 2003 Week 7 1 2 Today Internetworking (cont d). Fragmentation.

More information

Configurable String Matching Hardware for Speeding up Intrusion Detection

Configurable String Matching Hardware for Speeding up Intrusion Detection Configurable String Matching Hardware for Speeding up Intrusion Detection Monther Aldwairi, Thomas Conte, Paul Franzon Dec 6, 2004 North Carolina State University {mmaldwai, conte, paulf}@ncsu.edu www.ece.ncsu.edu/erl

More information

Multiple unconnected networks

Multiple unconnected networks TCP/IP Life in the Early 1970s Multiple unconnected networks ARPAnet Data-over-cable Packet satellite (Aloha) Packet radio ARPAnet satellite net Differences Across Packet-Switched Networks Addressing Maximum

More information

Hash-Based String Matching Algorithm For Network Intrusion Prevention systems (NIPS)

Hash-Based String Matching Algorithm For Network Intrusion Prevention systems (NIPS) Hash-Based String Matching Algorithm For Network Intrusion Prevention systems (NIPS) VINOD. O & B. M. SAGAR ISE Department, R.V.College of Engineering, Bangalore-560059, INDIA Email Id :vinod.goutham@gmail.com,sagar.bm@gmail.com

More information

Fundamental Questions to Answer About Computer Networking, Jan 2009 Prof. Ying-Dar Lin,

Fundamental Questions to Answer About Computer Networking, Jan 2009 Prof. Ying-Dar Lin, Fundamental Questions to Answer About Computer Networking, Jan 2009 Prof. Ying-Dar Lin, ydlin@cs.nctu.edu.tw Chapter 1: Introduction 1. How does Internet scale to billions of hosts? (Describe what structure

More information

Optimized architectures of CABAC codec for IA-32-, DSP- and FPGAbased

Optimized architectures of CABAC codec for IA-32-, DSP- and FPGAbased Optimized architectures of CABAC codec for IA-32-, DSP- and FPGAbased platforms Damian Karwowski, Marek Domański Poznan University of Technology, Chair of Multimedia Telecommunications and Microelectronics

More information

Lab Exercise UDP & TCP

Lab Exercise UDP & TCP Lab Exercise UDP & TCP Objective UDP (User Datagram Protocol) is an alternative communications protocol to Transmission Control Protocol (TCP) used primarily for establishing low-latency and loss tolerating

More information

TCP/IP. Chapter 5: Transport Layer TCP/IP Protocols

TCP/IP. Chapter 5: Transport Layer TCP/IP Protocols TCP/IP Chapter 5: Transport Layer TCP/IP Protocols 1 Objectives Understand the key features and functions of the User Datagram Protocol Explain the mechanisms that drive segmentation, reassembly, and retransmission

More information

The Data Link Layer Chapter 3

The Data Link Layer Chapter 3 The Data Link Layer Chapter 3 Data Link Layer Design Issues Error Detection and Correction Elementary Data Link Protocols Sliding Window Protocols Example Data Link Protocols Revised: August 2011 & February

More information

Chapter 24 Congestion Control and Quality of Service 24.1

Chapter 24 Congestion Control and Quality of Service 24.1 Chapter 24 Congestion Control and Quality of Service 24.1 Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 24-1 DATA TRAFFIC The main focus of congestion control

More information

CS 43: Computer Networks. 21: The Network Layer & IP November 7, 2018

CS 43: Computer Networks. 21: The Network Layer & IP November 7, 2018 CS 43: Computer Networks 21: The Network Layer & IP November 7, 2018 The Network Layer! Application: the application (e.g., the Web, Email) Transport: end-to-end connections, reliability Network: routing

More information

TCP. CSU CS557, Spring 2018 Instructor: Lorenzo De Carli (Slides by Christos Papadopoulos, remixed by Lorenzo De Carli)

TCP. CSU CS557, Spring 2018 Instructor: Lorenzo De Carli (Slides by Christos Papadopoulos, remixed by Lorenzo De Carli) TCP CSU CS557, Spring 2018 Instructor: Lorenzo De Carli (Slides by Christos Papadopoulos, remixed by Lorenzo De Carli) 1 Sources Fall and Stevens, TCP/IP Illustrated Vol. 1, 2nd edition Congestion Avoidance

More information

To see the details of TCP (Transmission Control Protocol). TCP is the main transport layer protocol used in the Internet.

To see the details of TCP (Transmission Control Protocol). TCP is the main transport layer protocol used in the Internet. Lab Exercise TCP Objective To see the details of TCP (Transmission Control Protocol). TCP is the main transport layer protocol used in the Internet. The trace file is here: https://kevincurran.org/com320/labs/wireshark/trace-tcp.pcap

More information

Design and Performance Evaluation of a New Spatial Reuse FireWire Protocol. Master s thesis defense by Vijay Chandramohan

Design and Performance Evaluation of a New Spatial Reuse FireWire Protocol. Master s thesis defense by Vijay Chandramohan Design and Performance Evaluation of a New Spatial Reuse FireWire Protocol Master s thesis defense by Vijay Chandramohan Committee Members: Dr. Christensen (Major Professor) Dr. Labrador Dr. Ranganathan

More information

NetFPGA Hardware Architecture

NetFPGA Hardware Architecture NetFPGA Hardware Architecture Jeffrey Shafer Some slides adapted from Stanford NetFPGA tutorials NetFPGA http://netfpga.org 2 NetFPGA Components Virtex-II Pro 5 FPGA 53,136 logic cells 4,176 Kbit block

More information

FPGA based Network Traffic Analysis using Traffic Dispersion Graphs

FPGA based Network Traffic Analysis using Traffic Dispersion Graphs FPGA based Network Traffic Analysis using Traffic Dispersion Graphs 2 nd September, 2010 Faisal N. Khan, P. O. Box 808, Livermore, CA 94551 This work performed under the auspices of the U.S. Department

More information

Introduction to TCP/IP networking

Introduction to TCP/IP networking Introduction to TCP/IP networking TCP/IP protocol family IP : Internet Protocol UDP : User Datagram Protocol RTP, traceroute TCP : Transmission Control Protocol HTTP, FTP, ssh What is an internet? A set

More information

A closer look at network structure:

A closer look at network structure: T1: Introduction 1.1 What is computer network? Examples of computer network The Internet Network structure: edge and core 1.2 Why computer networks 1.3 The way networks work 1.4 Performance metrics: Delay,

More information

Data Link Layer. Our goals: understand principles behind data link layer services: instantiation and implementation of various link layer technologies

Data Link Layer. Our goals: understand principles behind data link layer services: instantiation and implementation of various link layer technologies Data Link Layer Our goals: understand principles behind data link layer services: link layer addressing instantiation and implementation of various link layer technologies 1 Outline Introduction and services

More information

Midterm II December 4 th, 2006 CS162: Operating Systems and Systems Programming

Midterm II December 4 th, 2006 CS162: Operating Systems and Systems Programming Fall 2006 University of California, Berkeley College of Engineering Computer Science Division EECS John Kubiatowicz Midterm II December 4 th, 2006 CS162: Operating Systems and Systems Programming Your

More information

TOE40G-IP Introduction (Xilinx( Realize 40GbE limit speed!

TOE40G-IP Introduction (Xilinx( Realize 40GbE limit speed! TOE40G-IP Introduction (Xilinx( Xilinx) Ver1.0E Realize 40GbE limit speed! Page 1 TOE40G-IP core Overview TCP/IP off-loading engine for 40GBASE-SR4 Inserts between user logic and Xilinx 40/50GMAC module

More information

Delayed ACK Approach for TCP Performance Improvement for Ad Hoc Networks Using Chain Topology

Delayed ACK Approach for TCP Performance Improvement for Ad Hoc Networks Using Chain Topology Delayed ACK Approach for TCP Performance Improvement for Ad Hoc Networks Using Chain Topology Prashant Kumar Gupta M.Tech. Scholar, Computer Networks, Bhilai Institute of Technology, Durg (C.G.), India

More information

Guide To TCP/IP, Second Edition UDP Header Source Port Number (16 bits) IP HEADER Protocol Field = 17 Destination Port Number (16 bit) 15 16

Guide To TCP/IP, Second Edition UDP Header Source Port Number (16 bits) IP HEADER Protocol Field = 17 Destination Port Number (16 bit) 15 16 Guide To TCP/IP, Second Edition Chapter 5 Transport Layer TCP/IP Protocols Objectives Understand the key features and functions of the User Datagram Protocol (UDP) Explain the mechanisms that drive segmentation,

More information

Accelerating String Matching Algorithms on Multicore Processors Cheng-Hung Lin

Accelerating String Matching Algorithms on Multicore Processors Cheng-Hung Lin Accelerating String Matching Algorithms on Multicore Processors Cheng-Hung Lin Department of Electrical Engineering, National Taiwan Normal University, Taipei, Taiwan Abstract String matching is the most

More information

High Level View. EE 122: Ethernet and Random Access protocols. Medium Access Protocols

High Level View. EE 122: Ethernet and Random Access protocols. Medium Access Protocols High Level View EE 122: Ethernet and 802.11 Ion Stoica September 18, 2002 Goal: share a communication medium among multiple hosts connected to it Problem: arbitrate between connected hosts Solution goals:

More information

Introduction to Networking. Operating Systems In Depth XXVII 1 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Introduction to Networking. Operating Systems In Depth XXVII 1 Copyright 2017 Thomas W. Doeppner. All rights reserved. Introduction to Networking Operating Systems In Depth XXVII 1 Copyright 2017 Thomas W. Doeppner. All rights reserved. Distributed File Systems Operating Systems In Depth XXVII 2 Copyright 2017 Thomas W.

More information

CS457 Transport Protocols. CS 457 Fall 2014

CS457 Transport Protocols. CS 457 Fall 2014 CS457 Transport Protocols CS 457 Fall 2014 Topics Principles underlying transport-layer services Demultiplexing Detecting corruption Reliable delivery Flow control Transport-layer protocols User Datagram

More information

Network Security. Introduction to networks. Radboud University, The Netherlands. Autumn 2015

Network Security. Introduction to networks. Radboud University, The Netherlands. Autumn 2015 Network Security Introduction to networks Radboud University, The Netherlands Autumn 2015 What is a (computer) network Definition A computer network is two or more computers that are connected, so that

More information

Adaptive Data Burst Assembly in OBS Networks

Adaptive Data Burst Assembly in OBS Networks Adaptive Data Burst Assembly in OBS Networks Mohamed A.Dawood 1, Mohamed Mahmoud 1, Moustafa H.Aly 1,2 1 Arab Academy for Science, Technology and Maritime Transport, Alexandria, Egypt 2 OSA Member muhamed.dawood@aast.edu,

More information

Principles behind data link layer services

Principles behind data link layer services Data link layer Goals: Principles behind data link layer services Error detection, correction Sharing a broadcast channel: Multiple access Link layer addressing Reliable data transfer, flow control: Done!

More information

CHAPTER 8: MEMORY MANAGEMENT. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

CHAPTER 8: MEMORY MANAGEMENT. By I-Chen Lin Textbook: Operating System Concepts 9th Ed. CHAPTER 8: MEMORY MANAGEMENT By I-Chen Lin Textbook: Operating System Concepts 9th Ed. Chapter 8: Memory Management Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the

More information

No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6

No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6 Announcements No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6 Copyright c 2002 2017 UMaine School of Computing and Information S 1 / 33 COS 140:

More information

Outline Computer Networking. Functionality Split. Transport Protocols

Outline Computer Networking. Functionality Split. Transport Protocols Outline 15-441 15 441 Computer Networking 15-641 Lecture 10: Transport Protocols Justine Sherry Peter Steenkiste Fall 2017 www.cs.cmu.edu/~prs/15 441 F17 Transport introduction TCP connection establishment

More information

EE 610 Part 2: Encapsulation and network utilities

EE 610 Part 2: Encapsulation and network utilities EE 610 Part 2: Encapsulation and network utilities Objective: After this experiment, the students should be able to: i. Understand the format of standard frames and packet headers. Overview: The Open Systems

More information

CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring Lecture 21: Network Protocols (and 2 Phase Commit)

CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring Lecture 21: Network Protocols (and 2 Phase Commit) CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring 2003 Lecture 21: Network Protocols (and 2 Phase Commit) 21.0 Main Point Protocol: agreement between two parties as to

More information

Multi-Gigabit Transceivers Getting Started with Xilinx s Rocket I/Os

Multi-Gigabit Transceivers Getting Started with Xilinx s Rocket I/Os Multi-Gigabit Transceivers Getting Started with Xilinx s Rocket I/Os Craig Ulmer cdulmer@sandia.gov July 26, 2007 Craig Ulmer SNL/CA Sandia is a multiprogram laboratory operated by Sandia Corporation,

More information

Data and Computer Communications. Chapter 2 Protocol Architecture, TCP/IP, and Internet-Based Applications

Data and Computer Communications. Chapter 2 Protocol Architecture, TCP/IP, and Internet-Based Applications Data and Computer Communications Chapter 2 Protocol Architecture, TCP/IP, and Internet-Based s 1 Need For Protocol Architecture data exchange can involve complex procedures better if task broken into subtasks

More information

Review. Some slides are in courtesy of J. Kurose and K. Ross

Review. Some slides are in courtesy of J. Kurose and K. Ross Review The Internet (IP) Protocol Datagram format IP fragmentation ICMP: Internet Control Message Protocol NAT: Network Address Translation Routing in the Internet Intra-AS routing: RIP and OSPF Inter-AS

More information

6.9. Communicating to the Outside World: Cluster Networking

6.9. Communicating to the Outside World: Cluster Networking 6.9 Communicating to the Outside World: Cluster Networking This online section describes the networking hardware and software used to connect the nodes of cluster together. As there are whole books and

More information

ECE 650 Systems Programming & Engineering. Spring 2018

ECE 650 Systems Programming & Engineering. Spring 2018 ECE 650 Systems Programming & Engineering Spring 2018 Networking Transport Layer Tyler Bletsch Duke University Slides are adapted from Brian Rogers (Duke) TCP/IP Model 2 Transport Layer Problem solved:

More information

2.1 CHANNEL ALLOCATION 2.2 MULTIPLE ACCESS PROTOCOLS Collision Free Protocols 2.3 FDDI 2.4 DATA LINK LAYER DESIGN ISSUES 2.5 FRAMING & STUFFING

2.1 CHANNEL ALLOCATION 2.2 MULTIPLE ACCESS PROTOCOLS Collision Free Protocols 2.3 FDDI 2.4 DATA LINK LAYER DESIGN ISSUES 2.5 FRAMING & STUFFING UNIT-2 2.1 CHANNEL ALLOCATION 2.2 MULTIPLE ACCESS PROTOCOLS 2.2.1 Pure ALOHA 2.2.2 Slotted ALOHA 2.2.3 Carrier Sense Multiple Access 2.2.4 CSMA with Collision Detection 2.2.5 Collision Free Protocols 2.2.5.1

More information

CRC. Implementation. Error control. Software schemes. Packet errors. Types of packet errors

CRC. Implementation. Error control. Software schemes. Packet errors. Types of packet errors CRC Implementation Error control An Engineering Approach to Computer Networking Detects all single bit errors almost all 2-bit errors any odd number of errors all bursts up to M, where generator length

More information

EE 122: Ethernet and

EE 122: Ethernet and EE 122: Ethernet and 802.11 Ion Stoica September 18, 2002 (* this talk is based in part on the on-line slides of J. Kurose & K. Rose) High Level View Goal: share a communication medium among multiple hosts

More information

ET4254 Communications and Networking 1

ET4254 Communications and Networking 1 Topic 9 Internet Protocols Aims:- basic protocol functions internetworking principles connectionless internetworking IP IPv6 IPSec 1 Protocol Functions have a small set of functions that form basis of

More information

Internet II. CS10 : Beauty and Joy of Computing. cs10.berkeley.edu. !!Senior Lecturer SOE Dan Garcia!!! Garcia UCB!

Internet II. CS10 : Beauty and Joy of Computing. cs10.berkeley.edu. !!Senior Lecturer SOE Dan Garcia!!!  Garcia UCB! cs10.berkeley.edu CS10 : Beauty and Joy of Computing Internet II!!Senior Lecturer SOE Dan Garcia!!!www.cs.berkeley.edu/~ddgarcia CS10 L17 Internet II (1)! Why Networks?! Originally sharing I/O devices

More information

Design and Implementation of DPI Mechanism for NIDS on FPGA

Design and Implementation of DPI Mechanism for NIDS on FPGA Design and Implementation of DPI Mechanism for NIDS on FPGA Veena M P 1, Divya Prabha 2, Dr. M Z Kurian 3 M.Tech [Digital electronics], Sri Siddhartha Institute of Technology, Tumkur, Karnataka, India

More information

6.1 Internet Transport Layer Architecture 6.2 UDP (User Datagram Protocol) 6.3 TCP (Transmission Control Protocol) 6. Transport Layer 6-1

6.1 Internet Transport Layer Architecture 6.2 UDP (User Datagram Protocol) 6.3 TCP (Transmission Control Protocol) 6. Transport Layer 6-1 6. Transport Layer 6.1 Internet Transport Layer Architecture 6.2 UDP (User Datagram Protocol) 6.3 TCP (Transmission Control Protocol) 6. Transport Layer 6-1 6.1 Internet Transport Layer Architecture The

More information

Computer Communication Networks Midterm Review

Computer Communication Networks Midterm Review Computer Communication Networks Midterm Review ICEN/ICSI 416 Fall 2018 Prof. Aveek Dutta 1 Instructions The exam is closed book, notes, computers, phones. You can use calculator, but not one from your

More information

ISSN Vol.03, Issue.02, March-2015, Pages:

ISSN Vol.03, Issue.02, March-2015, Pages: ISSN 2322-0929 Vol.03, Issue.02, March-2015, Pages:0122-0126 www.ijvdcs.org Design and Simulation Five Port Router using Verilog HDL CH.KARTHIK 1, R.S.UMA SUSEELA 2 1 PG Scholar, Dept of VLSI, Gokaraju

More information

OPTIMIZATION OF IPV6 PACKET S HEADERS OVER ETHERNET FRAME

OPTIMIZATION OF IPV6 PACKET S HEADERS OVER ETHERNET FRAME OPTIMIZATION OF IPV6 PACKET S HEADERS OVER ETHERNET FRAME 1 FAHIM A. AHMED GHANEM1, 2 VILAS M. THAKARE 1 Research Student, School of Computational Sciences, Swami Ramanand Teerth Marathwada University,

More information

Delay Time Analysis of Reconfigurable. Firewall Unit

Delay Time Analysis of Reconfigurable. Firewall Unit Delay Time Analysis of Reconfigurable Unit Tomoaki SATO C&C Systems Center, Hirosaki University Hirosaki 036-8561 Japan Phichet MOUNGNOUL Faculty of Engineering, King Mongkut's Institute of Technology

More information

An Enhanced Dynamic Packet Buffer Management

An Enhanced Dynamic Packet Buffer Management An Enhanced Dynamic Packet Buffer Management Vinod Rajan Cypress Southeast Design Center Cypress Semiconductor Cooperation vur@cypress.com Abstract A packet buffer for a protocol processor is a large shared

More information

Packet Inspection on Programmable Hardware

Packet Inspection on Programmable Hardware Abstract Packet Inspection on Programmable Hardware Benfano Soewito Information Technology Department, Bakrie University, Jakarta, Indonesia E-mail: benfano.soewito@bakrie.ac.id In the network security

More information

CS4700/CS5700 Fundamentals of Computer Networks

CS4700/CS5700 Fundamentals of Computer Networks CS4700/CS5700 Fundamentals of Computer Networks Lecture 14: TCP Slides used with permissions from Edward W. Knightly, T. S. Eugene Ng, Ion Stoica, Hui Zhang Alan Mislove amislove at ccs.neu.edu Northeastern

More information

Rate Based Pacing with Various TCP Variants

Rate Based Pacing with Various TCP Variants International OPEN ACCESS Journal ISSN: 2249-6645 Of Modern Engineering Research (IJMER) Rate Based Pacing with Various TCP Variants Mr. Sreekanth Bandi 1, Mr.K.M.Rayudu 2 1 Asst.Professor, Dept of CSE,

More information

Fast Retransmit. Problem: coarsegrain. timeouts lead to idle periods Fast retransmit: use duplicate ACKs to trigger retransmission

Fast Retransmit. Problem: coarsegrain. timeouts lead to idle periods Fast retransmit: use duplicate ACKs to trigger retransmission Fast Retransmit Problem: coarsegrain TCP timeouts lead to idle periods Fast retransmit: use duplicate ACKs to trigger retransmission Packet 1 Packet 2 Packet 3 Packet 4 Packet 5 Packet 6 Sender Receiver

More information

Tree-Based Minimization of TCAM Entries for Packet Classification

Tree-Based Minimization of TCAM Entries for Packet Classification Tree-Based Minimization of TCAM Entries for Packet Classification YanSunandMinSikKim School of Electrical Engineering and Computer Science Washington State University Pullman, Washington 99164-2752, U.S.A.

More information

Lecture 3: The Transport Layer: UDP and TCP

Lecture 3: The Transport Layer: UDP and TCP Lecture 3: The Transport Layer: UDP and TCP Prof. Shervin Shirmohammadi SITE, University of Ottawa Prof. Shervin Shirmohammadi CEG 4395 3-1 The Transport Layer Provides efficient and robust end-to-end

More information

CSCI-GA Operating Systems. Networking. Hubertus Franke

CSCI-GA Operating Systems. Networking. Hubertus Franke CSCI-GA.2250-001 Operating Systems Networking Hubertus Franke frankeh@cs.nyu.edu Source: Ganesh Sittampalam NYU TCP/IP protocol family IP : Internet Protocol UDP : User Datagram Protocol RTP, traceroute

More information

Ethernet Hub. Campus Network Design. Hubs. Sending and receiving Ethernet frames via a hub

Ethernet Hub. Campus Network Design. Hubs. Sending and receiving Ethernet frames via a hub Campus Network Design Thana Hongsuwan Ethernet Hub 2003, Cisco Systems, Inc. All rights reserved. 1-1 2003, Cisco Systems, Inc. All rights reserved. BCMSN v2.0 1-2 Sending and receiving Ethernet frames

More information

TCP Performance. EE 122: Intro to Communication Networks. Fall 2006 (MW 4-5:30 in Donner 155) Vern Paxson TAs: Dilip Antony Joseph and Sukun Kim

TCP Performance. EE 122: Intro to Communication Networks. Fall 2006 (MW 4-5:30 in Donner 155) Vern Paxson TAs: Dilip Antony Joseph and Sukun Kim TCP Performance EE 122: Intro to Communication Networks Fall 2006 (MW 4-5:30 in Donner 155) Vern Paxson TAs: Dilip Antony Joseph and Sukun Kim http://inst.eecs.berkeley.edu/~ee122/ Materials with thanks

More information

Principles behind data link layer services:

Principles behind data link layer services: Data link layer Goals: Principles behind data link layer services: Error detection, correction Sharing a broadcast channel: Multiple access Link layer addressing Reliable data transfer, flow control Example

More information

Principles behind data link layer services:

Principles behind data link layer services: Data link layer Goals: Principles behind data link layer services: Error detection, correction Sharing a broadcast channel: Multiple access Link layer addressing Reliable data transfer, flow control Example

More information

Reliable Transport I: Concepts and TCP Protocol

Reliable Transport I: Concepts and TCP Protocol Reliable Transport I: Concepts and TCP Protocol Brad Karp UCL Computer Science CS 3035/GZ01 29 th October 2013 Part I: Transport Concepts Layering context Transport goals Transport mechanisms 2 Context:

More information

Announcements. No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6

Announcements. No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6 Announcements No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6 Copyright c 2002 2017 UMaine Computer Science Department 1 / 33 1 COS 140: Foundations

More information

CCNA 1 Chapter 7 v5.0 Exam Answers 2013

CCNA 1 Chapter 7 v5.0 Exam Answers 2013 CCNA 1 Chapter 7 v5.0 Exam Answers 2013 1 A PC is downloading a large file from a server. The TCP window is 1000 bytes. The server is sending the file using 100-byte segments. How many segments will the

More information

cs144 Midterm Review Fall 2010

cs144 Midterm Review Fall 2010 cs144 Midterm Review Fall 2010 Administrivia Lab 3 in flight. Due: Thursday, Oct 28 Midterm is this Thursday, Oct 21 (during class) Remember Grading Policy: - Exam grade = max (final, (final + midterm)/2)

More information

1/29/2008. From Signals to Packets. Lecture 6 Datalink Framing, Switching. Datalink Functions. Datalink Lectures. Character and Bit Stuffing.

1/29/2008. From Signals to Packets. Lecture 6 Datalink Framing, Switching. Datalink Functions. Datalink Lectures. Character and Bit Stuffing. /9/008 From Signals to Packets Lecture Datalink Framing, Switching Peter Steenkiste Departments of Computer Science and Electrical and Computer Engineering Carnegie Mellon University Analog Signal Digital

More information

The Transport Layer: TCP & Reliable Data Transfer

The Transport Layer: TCP & Reliable Data Transfer The Transport Layer: TCP & Reliable Data Transfer Smith College, CSC 249 February 15, 2018 1 Chapter 3: Transport Layer q TCP Transport layer services: v Multiplexing/demultiplexing v Connection management

More information

CS 4453 Computer Networks Winter

CS 4453 Computer Networks Winter CS 4453 Computer Networks Chapter 2 OSI Network Model 2015 Winter OSI model defines 7 layers Figure 1: OSI model Computer Networks R. Wei 2 The seven layers are as follows: Application Presentation Session

More information

Lecture 7: Flow Control - I

Lecture 7: Flow Control - I ECE 8823 A / CS 8803 - ICN Interconnection Networks Spring 2017 http://tusharkrishna.ece.gatech.edu/teaching/icn_s17/ Lecture 7: Flow Control - I Tushar Krishna Assistant Professor School of Electrical

More information

Scribe Notes -- October 31st, 2017

Scribe Notes -- October 31st, 2017 Scribe Notes -- October 31st, 2017 TCP/IP Protocol Suite Most popular protocol but was designed with fault tolerance in mind, not security. Consequences of this: People realized that errors in transmission

More information

PCnet-FAST Buffer Performance White Paper

PCnet-FAST Buffer Performance White Paper PCnet-FAST Buffer Performance White Paper The PCnet-FAST controller is designed with a flexible FIFO-SRAM buffer architecture to handle traffic in half-duplex and full-duplex 1-Mbps Ethernet networks.

More information

Information Network 1 TCP 1/2. Youki Kadobayashi NAIST

Information Network 1 TCP 1/2. Youki Kadobayashi NAIST Information Network 1 TCP 1/2 Youki Kadobayashi NAIST 1 Transport layer: a birds-eye view Hosts maintain state for each transport-layer endpoint Routers don t maintain per-host state H R R R R H Transport

More information