Chapter 23 Advanced SCTP Sockets. SCTP Sockets, recall ● Stream Control Transmission Protocol ● Multi-homed ● Association, instead of connection ● IPV4.

Slides:



Advertisements
Similar presentations
Introduction to Sockets Jan Why do we need sockets? Provides an abstraction for interprocess communication.
Advertisements

Umut Girit  One of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer.
CCNA – Network Fundamentals
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Socket Programming 0.
Transport Layer – TCP (Part1) Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS School of Computing, UNF.
Chapter 7 – Transport Layer Protocols
TELE202 Lecture 14 TCP/UDP (2) 1 Lecturer Dr Z. Huang Overview ¥Last Lecture »TCP/UDP (1) »Source: chapter 17 ¥This Lecture »TCP/UDP (2) »Source: chapter.
TCP/IP Protocol Suite 1 Chapter 13 Upon completion you will be able to: Stream Control Transmission Protocol Be able to name and understand the services.
TCP/IP Protocol Suite 1 Chapter 13 Upon completion you will be able to: Stream Control Transmission Protocol Be able to name and understand the services.
Today’s topic Issues about sending structures with TCP. Server design alternatives: concurrent server and multiplexed server. I/O multiplexing.
UNIT 07 Process – to – Process Delivery: UDP,TCP and SCTP
Elementary TCP Sockets Chapter 4 UNIX Network Programming Vol. 1, Second Ed. Stevens.
Socket Programming.
Stream Control Transmission Protocol 網路前瞻技術實驗室 陳旻槿.
William Stallings Data and Computer Communications 7 th Edition (Selected slides used for lectures at Bina Nusantara University) Transport Layer.
Department of Electronic Engineering City University of Hong Kong EE3900 Computer Networks Transport Protocols Slide 1 Transport Protocols.
TCP. Learning objectives Reliable Transport in TCP TCP flow and Congestion Control.
Process-to-Process Delivery:
Gursharan Singh Tatla Transport Layer 16-May
Process-to-Process Delivery:
TRANSPORT LAYER T.Najah Al-Subaie Kingdom of Saudi Arabia Prince Norah bint Abdul Rahman University College of Computer Since and Information System NET331.
1 Transport Layer Computer Networks. 2 Where are we?
Elementary TCP Sockets
University of Calgary – CPSC 441.  UDP stands for User Datagram Protocol.  A protocol for the Transport Layer in the protocol Stack.  Alternative to.
6.1. Transport Control Protocol (TCP) It is the most widely used transport protocol in the world. Provides reliable end to end connection between two hosts.
Server Sockets: A server socket listens on a given port Many different clients may be connecting to that port Ideally, you would like a separate file descriptor.
CS332, Ch. 26: TCP Victor Norman Calvin College 1.
Transport Layer: TCP and UDP. Overview of TCP/IP protocols Comparing TCP and UDP TCP connection: establishment, data transfer, and termination Allocation.
Chapter 4: Interprocess Communication‏ Pages
Transport Control Protocol (TCP) Features of TCP, packet loss and retransmission, adaptive retransmission, flow control, three way handshake, congestion.
23.1 Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Chapter 2 Applications and Layered Architectures Sockets.
7.9 TCP Socket Options 7.10 SCTP Socket Options 7.11 fcntl Function 7.12 Summary 報告者 : 梁凱鈞.
Remote Shell CS230 Project #4 Assigned : Due date :
Advanced Sockets API-II Vinayak Jagtap
CSCI 465 D ata Communications and Networks Lecture 27 Martin van Bommel CSCI 465 Data Communications & Networks 1.
Chapter 24 Transport Control Protocol (TCP) Layer 4 protocol Responsible for reliable end-to-end transmission Provides illusion of reliable network to.
The Client-Server Model And the Socket API. Client-Server (1) The datagram service does not require cooperation between the peer applications but such.
Computer Networks23-1 PART 5 Transport Layer. Computer Networks23-2 Position of Transport Layer Responsible for the delivery of a message from one process.
STREAM CONTROL TRANSMISSION PROTOCOL (SCTP)
CSCI 330 UNIX and Network Programming Unit XV: Transmission Control Protocol.
Today’s topic: UDP Reliable communication over UDP.
Stream Control Transmission Protocol
4343 X2 – The Transport Layer Tanenbaum Ch.6.
IP1 The Underlying Technologies. What is inside the Internet? Or What are the key underlying technologies that make it work so successfully? –Packet Switching.
Netprog: Client/Server Issues1 Issues in Client/Server Programming Refs: Chapter 27.
Data Communications and Networks Chapter 6 – IP, UDP and TCP ICT-BVF8.1- Data Communications and Network Trainer: Dr. Abbes Sebihi.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
1 K. Salah Application Layer Module K. Salah Network layer duties.
Process-to-Process Delivery:
SOCKET PROGRAMMING Presented By : Divya Sharma.
Ch23 Ameera Almasoud 1 Based on Data Communications and Networking, 4th Edition. by Behrouz A. Forouzan, McGraw-Hill Companies, Inc., 2007.
Chapter 9: Transport Layer
Chapter 3 outline 3.1 Transport-layer services
Instructor Materials Chapter 9: Transport Layer
Socket Option.
Chapter 16 Stream Control Transmission Protocol (SCTP)
Transport Layer.
PART 5 Transport Layer Computer Networks.
TCP Transport layer Er. Vikram Dhiman LPU.
Process-to-Process Delivery:
Stream Control Transmission Protocol (SCTP)
Network Programming CSC- 341
Chapter 9 Elementary SCTP Sockets
Advanced Network Programming spring 2007
Issues in Client/Server Programming
CPEG514 Advanced Computer Networkst
Socket Programming with UDP
Transport Layer 9/22/2019.
Presentation transcript:

Chapter 23 Advanced SCTP Sockets

SCTP Sockets, recall ● Stream Control Transmission Protocol ● Multi-homed ● Association, instead of connection ● IPV4 & IPV6 simultaneously in association ● Message oriented, ordered ● Provides reliability for multi-homed servers

Contents ● Control of failure detection ● Unordered data ● Notifications ● Complete/partial messages ● Iterative/Concurrent servers using SCTP ● Extracting associations

Autoclosing ● Client closes association with close(), or server with MSG_EOF or MSG_ABORT flag ● If client opens connection, association is left to the server until client closes ● Server can timeout to close the association Setsockopt(sock_fd, IPPROTO_SCTP, SCTP_AUTOCLOSE, &close_time, sizeof(close_time);

Partial Delivery ● SCTP uses partial delivery only if the message is too large – Message requires buffer space exceeding threshold ● E.g. half of buffer size – Message can be delivered only from the beginning sequentially up to the first missing piece – PD API prevents other messages (also in other streams) from being transmitted

Notifications ● Seven notifications ● When message is received, msg_flags is checked for notifications ● Notification tells about: – Process association change, Peer address change, Remote error, Failed message, Adaption layer indication, Partial delivery notification, Shutdown notification

Unordered Data ● Sctp_sendmsg flag MSG_UNORDERED ● Reliably transmits data ● Received out-of-order, depending on the order of arrival

Binding ● sctp_bindx() can bind several IP's to one socket ● All addresses must use the same port number ● Addresses can be IPV4 or IPV6 ● Enough storage must be allocated

Address Information ● Functionality to determine which addresses are used by multi-home clients/servers ● Addresses can be obtained from associations by signing to notifications. At the start of connection: – SCTP_COMM_UP notification – sctp_getpaddrs – sctp_getladdrs ● Association ID from peer address using sctp_opt_info on the socket

Heartbeating ● Similar to TCP keep-alive ● Applications can change the delay or turn off heartbeating – Disabling prevents SCTP from knowing when peer address becomes active ● Error threshold: Missed heartbeats or retransmission timeouts

int heartbeat_action(int sock_fd, SA *sa, socklen_t salen, uint value) { struct sctp_paddrparams sp; int siz; bzero(&sp, sizeof(sp)); sp.spp_hbinterval = value; memcpy((caddr_t) & sp.spp_address, sa, salen): Setsockopt(sock_fd, IPPROTO_SCTP, SCTP_PEER_ADDR_PARAMS, &sp, sizeof(sp); return(0); }

Peeling off Associations ● One-to-many associations to one-to-one ● Many-to-one association advantages – Only one file descriptor – Simple iterative servers – Applications can send date on 3 rd and 4 th packet in four-way handshakes – Not necessary to call connect or accept, just a receive call on the socket descriptor is enough

Concurrent servers ● Concurrent servers can be done using sctp_peeloff() – Returns a new socket descriptor with just one association – This socket can be given to a new thread or child process

Controlling Timing ● Socket options ● Seven controls ● How quickly SCTP will detect failure or make retransmissions ● Either in attempting connection or noticing that one endpoint is down ● One should carefully think whether to change these values (Useful maybe in private networks)

When to use SCTP ● Multihome servers ● Muliple data elements, no head-of-line blocking ● Messages, no need for user to mark start and end of message ● Message order is unrelevant ● Messages may timeout, dropped if no need anymore ● Easy to migrate from TCP, and many good points of TCP implemented (Except half-close, urgent data)