iadt Discussions Socket basics; Socket lifetime issues; Service Responses; Sense a inconsistency IBM TotalStorage Submitted to T10

Similar documents
ECE 650 Systems Programming & Engineering. Spring 2018

UDP and TCP. Introduction. So far we have studied some data link layer protocols such as PPP which are responsible for getting data

Memory-Mapped Files. generic interface: vaddr mmap(file descriptor,fileoffset,length) munmap(vaddr,length)

Interprocess Communication Mechanisms

shared storage These mechanisms have already been covered. examples: shared virtual memory message based signals

Transport Layer Review

CCNA R&S: Introduction to Networks. Chapter 7: The Transport Layer

Distributed Systems Theory 4. Remote Procedure Call. October 17, 2008

Revisions. General. T10 Membership FROM: Paul A. Suhler, Quantum Corporation DATE: 13 June 2008 SUBJECT: T10/07-469r5, ADT-2: Internet ADT (iadt)

CSE 461 Module 11. Connections

UDP CONNECT TO A SERVER

Connections. Topics. Focus. Presentation Session. Application. Data Link. Transport. Physical. Network

Lecture 20 Overview. Last Lecture. This Lecture. Next Lecture. Transport Control Protocol (1) Transport Control Protocol (2) Source: chapters 23, 24

NETWORK PROGRAMMING. Instructor: Junaid Tariq, Lecturer, Department of Computer Science

T10 Membership FROM: Paul A. Suhler, Quantum Corporation DATE: 21 January January 2009 SUBJECT: T10/08-409r5, ADT-2: Internet ADT (iadt)

The User Datagram Protocol

Revisions. T10 Membership FROM: Paul A. Suhler, Quantum Corporation DATE: 21 October 2008 SUBJECT: T10/08-409r0, ADT-2: Internet ADT (iadt)

7. TCP 최양희서울대학교컴퓨터공학부

CCNA 1 Chapter 7 v5.0 Exam Answers 2013

(Refer Slide Time: 1:09)

CSE/EE 461 Lecture 14. Connections. Last Time. This Time. We began on the Transport layer. Focus How do we send information reliably?

Transport Protocols. CSCI 363 Computer Networks Department of Computer Science

Mobile Transport Layer Lesson 02 TCP Data Stream and Data Delivery

CS419: Computer Networks. Lecture 10, Part 2: Apr 11, 2005 Transport: TCP mechanics (RFCs: 793, 1122, 1323, 2018, 2581)

Unit 2.

ECE 435 Network Engineering Lecture 9

Transport Layer. <protocol, local-addr,local-port,foreign-addr,foreign-port> ϒ Client uses ephemeral ports /10 Joseph Cordina 2005

Introduction to Networks and the Internet

Part VI. Appendixes. Appendix A OSI Model and Internet Protocols Appendix B About the CD

User Datagram Protocol

Transport Protocols. ISO Defined Types of Network Service: rate and acceptable rate of signaled failures.

CSCI-1680 Transport Layer I Rodrigo Fonseca

External Data Representation (XDR)

CSE 461 Connections. David Wetherall

Revisions. T10 Membership FROM: Paul A. Suhler, Quantum Corporation DATE: 31 August 2008 SUBJECT: T10/07-469r8, ADT-2: Internet ADT (iadt)

Connection-oriented (virtual circuit) Reliable Transfer Buffered Transfer Unstructured Stream Full Duplex Point-to-point Connection End-to-end service

OSI Transport Layer. objectives

UNIT V. Computer Networks [10MCA32] 1

>>> SOLUTIONS <<< Answer the following questions regarding the basics principles and concepts of networks.

Sockets Sockets Communication domains

Network Programming in Python. based on Chun, chapter 2; plus material on classes

EEC-682/782 Computer Networks I

ECE 650 Systems Programming & Engineering. Spring 2018

Transport Layer (TCP/UDP)

CS 43: Computer Networks. 18: Transmission Control Protocol October 12-29, 2018

Last Time. Internet in a Day Day 2 of 1. Today: TCP and Apps

Revisions. General. T10 Membership FROM: Paul A. Suhler, Quantum Corporation DATE: 29 May 2008 SUBJECT: T10/07-469r4, ADT-2: Internet ADT (iadt)

Question Score 1 / 19 2 / 19 3 / 16 4 / 29 5 / 17 Total / 100

416 Distributed Systems. Networks review; Day 2 of 2 Fate sharing, e2e principle And start of RPC Jan 10, 2018

CSEP 561 Connections. David Wetherall

6. The Transport Layer and protocols

CSCI-GA Operating Systems. Networking. Hubertus Franke

ECE 435 Network Engineering Lecture 15

QUIZ: Longest Matching Prefix

TRANSMISSION CONTROL PROTOCOL. ETI 2506 TELECOMMUNICATION SYSTEMS Monday, 7 November 2016

ECE 435 Network Engineering Lecture 17

Communication. Overview

Distributed Systems. Chapter 02

CSCI-1680 Transport Layer I Rodrigo Fonseca

Middleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004

Process-to-Process Delivery:

TCP: Transmission Control Protocol UDP: User Datagram Protocol TCP - 1

Lecture 2. Outline. Layering and Protocols. Network Architecture. Layering and Protocols. Layering and Protocols. Chapter 1 - Foundation

CSE 461 The Transport Layer

Networking and TCP/IP. John Kalbach November 8, 2004

Introduction to TCP/IP networking

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

ECE 435 Network Engineering Lecture 9

Lecture 8: February 19

Management of Protocol State

ELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition

n Understand EC-Council s scanning methodology n Describe scan types and the objectives of scanning

Unix Network Programming

Transport Layer. The transport layer is responsible for the delivery of a message from one process to another. RSManiaol

CS457 Transport Protocols. CS 457 Fall 2014

CSEP 561 Connections. David Wetherall

Introduction to Computer Systems. Networks 2. c Theodore Norvell. The Sockets API

Transport Protocols Reading: Sections 2.5, 5.1, and 5.2

Internet Connectivity with

Lecture (03) Networking Model (TCP/IP) Networking Standard (OSI) cont.,..

Chapter 5 End-to-End Protocols

Transport Protocols Reading: Sections 2.5, 5.1, and 5.2. Goals for Todayʼs Lecture. Role of Transport Layer

Transport Layer. Gursharan Singh Tatla. Upendra Sharma. 1

Transport Protocols & TCP TCP

Introduction to Open System Interconnection Reference Model

CS 43: Computer Networks. 15: Transport Layer & UDP October 5, 2018

CS 326: Operating Systems. Networking. Lecture 17

bitcoin allnet exam review: transport layer TCP basics congestion control project 2 Computer Networks ICS 651

Chapter 1. Introduction. 1.1 Understanding Bluetooth as a Software Developer

CS4700/CS5700 Fundamentals of Computer Networks

EEC-484/584 Computer Networks. Lecture 16. Wenbing Zhao

Transport Layer Marcos Vieira

Applications and Layered Architectures. Chapter 2 Communication Networks Leon-Garcia, Widjaja

Protocol Overview. TCP/IP Performance. Connection Types in TCP/IP. Resource Management. Router Queues. Control Mechanisms ITL

MTAT Enterprise System Integration. Lecture 2: Middleware & Web Services

System Programming. Introduction to computer networks

Guide to Networking Essentials, 6 th Edition. Chapter 5: Network Protocols

Development of reliable protocol Sliding window protocols. C = channel capacity in bps I = interrupt/service time + propagation delay

Layering in Networked computing. OSI Model TCP/IP Model Protocols at each layer

Introduction to Network. Topics

Transcription:

iadt Discussions Socket basics; Socket lifetime issues; Service Responses; Sense a inconsistency

Purpose Prepare common ground for discussions This shows recent improvement of my understanding of Ethernet Want to make sure we all understand the very most basics the same way Then cover some issues

Socket Basics Server is listening Client does the connect Sockaddress = IP Address + Port TCP = Socket stream Has a connection UDP = Socket datagram Send and forget Connection allows two-way connection. Either side can begin conversation

Basic API calls Socket() Returns a handle to an internal structure Bind() IP_addr + port gets bound to the socket Still only internal I relate this to the I in I_T nexus Once bound then ready to do: Connect(); or Listen()

Basic API calls (cont.) Listen() Allows a bound socket to accept a connection from an external entity Connect() Requests a connection between an internal socket and an external ip_addr+port Sends the SYN frame Accept() Accepts a connect request Once completed then I think of an I_T nexus existing

Basic API calls (cont.) Recv() Parameters Socket, buf, len Receives data into buf Send() Parameters Socket, buf, len Queues the data to send Push() will flush the queue when allowed

Basic API calls (cont.) Close() Sends FIN After close can only ACK Connection is not fully closed until other side sends FIN;ACK

Connection lifetime Long-lived vs. short-lived We have said that either should be allowed and nothing prohibits short-lived but that most of us have been thinking in terms of long-lived connections. I agree we need to allow either We need to understand consequences of each The definition of long-lived might be something like, does not close at the end of an exchange Does login persist across multiple connections or does it logout (explict or implicit) on connection loss

Connection lifetime (cont.) Automation Has to accept a connection at anytime from any drive Could have hundreds of drives in one library If long-lived connections library must be able to manage up to hundreds of concurrent connections If short-lived connections and login is limited to a single connection, then there will be a lot of overhead due to login s

Connection lifetime (cont.) When connection is short-lived and one side intends to use it for a single command then close it, how do we keep the other side from using it for a different command? E.g., Automation opens a connection and sends a Mode Select. DTD receives a RES on LUN 1. Issue if login does not persist across connections

Connection lifetime (cont.) If library is doing LUN 2 command and the DT device receives a LUN 1 command, does it create a new connection, use the existing connection? If it creates a new connection does it login? If so does it destroy the session created for the LUN2 connection?

Login persistence Assume login is not persistent Receiver does not know when sender closes a port unless LOGO received If something is queued up and a connection needs to be opened how can we login? The PLOGI would be queued behind whatever is in the queue. Login should be persistent across connections

Actions to service responses What happens if connection cannot be opened? i.e., CONNECTION REFUSED Need to define explicit behavior by port that receives a non-good service response.

Sense a Sense a indicates that a DT device is in an automation device. It has no meaning related to the presence of an Ethernet connector. Listen() & Connect() show the following which does not make sense in light of this NO PHYSICAL CONNECTION: The request failed because the Sense connection was not asserted. We have no indication that Ethernet connector is attached this is independent of DT device being in a library

Questions received internally Since iadt is not specifying a connector, is there any reason to force 10/100 Ethernet? Everything else is just IP (which can be sent over Ethernet, Token Ring, serial, FC, etc). So why limit this to 10/100 Ethernet? It seems better to just define to the IP layer and then let the rest take care of itself. This would allow expansion to Gigabit Ethernet without a change to the spec. I realize that they may not need gigabit ethernet, but it might be easier to use that in some systems - especially if the drive/library has another port which is gigabit ethernet. For example, if figure 7 in the 07-469r7.pdf stopped at the IP layer, then this would work over any interface that supports IP. How do we ensure interoperability without specifying any physical layer. As long as the vendor in their procurement spec specified iadt over 10/100 ethernet or iadt over Gigabit ethernet, or iadt over FC then I think that would be complete.

Questions received internally I was thinking about the drive location issue some and had a strange thought. If they added another sense line (or redefined an existing sense line), so that the line could be toggled by the drive on demand, then the drive could default the line to off, and turn it on or off when the library requested. This would provide a way for the library to know which drive was connected where by requesting the drive to drive the sense line on and seeing which line went on. Normally, I would just consider this to be an implementation issue (an extra line in addition to any that iadt specified), except that it would be easier if iadt specified the command to toggle the signal line at the ADT layer instead of a special SCSI command (perhaps a new link service or fast access IU type?). Potential signals would by either Sense aux or Signal aux