CS162: Operating Systems and Systems Programming Lecture 20

Total Page:16

File Type:pdf, Size:1020Kb

CS162: Operating Systems and Systems Programming Lecture 20 CS162: Operating Systems and Systems Programming Lecture 20: Networking: TCP/ P !finis#$% RPC (start'$ 23 Ju*y 201+ Char*es &eiss #ttps://cs162.eecs.berkeley,edu/ Recal*: Sockets .bstraction o/ network I/O inter/ace ― Bidirectional communication c#anne* ― 0ses file interface once esta-*is#ed ● read% write% c*ose Server setup: ― socket(), bind(), listen(), accept!$ ― read, write, c*ose from socket returned by accept Client setup: ― socket(), connect!$ ― t#en read, write, c*ose getaddrin/o($ to resolve names, addresses /or bind($ and connect!$ 2 Recal*: Layering Comple2 ser1ices from simpler ones TCP/IP networking layers: ― Physical + Link (4ireless, Ethernet, ..,$ ● Unrelia-*e, loca* e2c#ange o/ limited-si7ed frames ― Network (IP) – routing between networks ● Unrelia-*e, glo-a* e2c#ange o/ limited6si7ed packets ― Transport (TCP, 08P) – routing ● &elia-*ity, streams o/ bytes instead o/ packets, … ― .pplication – everything on top o/ sockets ( Recal*: Glue: Adding Functionality Physical Reality: Frames Abstraction: Stream Limited Size .r-itrary Si7e 0nordered (sometimes$ Ordered 0nre*iab*e Reliable <achine-to-machine Process-to-process On*y on local area net Routed anywhere .synchronous Synchronous Recal*: >ierarchical Networking: The nternet >ierarchy of networks – scales to mil*ions of host Other subnets "ranscontinental subnet1 Router #ink Router ther subnet$ subnets Router subnet2 + Recal*: Routing (2) Internet routing mechanism: routing tab*es ― 5ach router does tab*e lookup to decide which link to use to get packet closer to destination ― 8on’t need 4 -illion entries !or 2^128 /or IPv6) in ta-le: routing is by su-net Routing table contains: ― 8estination address range: output link c*oser to destination ― 8e/ault entry 6 Names 1ersus Addresses Names are ― meaningfu* ― memorable ― donDt c#ange if the resource moves .ddresses ― explain #ow to access a resource ― c#ange i/ the resource moves 5xamp*e: ― int foo; ← variab*e in C ― DfooD is t#e name, address is a pointer to some p*ace on the stack,,, C Naming in the nternet Name %ddress You probably want to use human-readable names: ― www,google.com ― www,-erkeley.edu Network wants an IP address: ― thatDs what's in routing ta-les ― a*lows routing ta-les to take advantage o/ hierarchy Mapping is done -y the Domain Name System Domain Name System (1) "op-le'el edu com (IT 169.229.131.81 berkeley)edu berkele/ www (it.edu calmail eecs 128.32.61.103 eecs.berkeley.edu www 8NS is a hierarc#ica* mec#anism for naming 128.32.139.., ― Name di1ided into "la-e*s"% right to le/t: www,eecs.-erkeley.edu 5ac# domain owned by a particu*ar organization ― Top *e1e* hand*ed -y ICANN ― SubseIuent le1e*s owned -y organi7ations Domain Name System (2) "op-le'el edu com (IT 169.229.131.81 berkeley)edu berkele/ www (it.edu calmail eecs 128.32.61.103 eecs.berkeley.edu www Resolution -y repeated Iueries: 128.32.139.., ― One server /or each HdomainH (JrootK, edu, -erkeley.edu$ ― Plus -ackups: redundancy !availa-le, not gaurenteed consistent$ Domain Name System (3) >ow do you find the root ser1er' >ardcoded list of root ser1ers and backups (updated rarely) … or use your ISP's ser1er (makes repeated queries on your be#al/$ ― called a recursive resolver Recal*: Iterati1e 1s. Recursive Query Master/Directory Master/Directory get(K14) get(K14) K14 N3 N3 K14 N3 V14 V14 Recursive Iterative K14 V14 K14 V14 … … N1 N2 N3 N50 N1 N2 N3 N50 Recursive Query: Directory delegates Iterative Query: Client de*egates 12 Pv4 Packet Format P >eader Size o/ datagram ;*ags & Lengt# !#eader+data$ Fragmentation to sp*it large 0 1+ 16 (1 messages P Oer4 @ >L ToS Tota* *engt#(166-its) 16--it identification Nags 136-it /rag oM Time to P #eader TTL protoco* 166-it #eader c#ecksum Li1e !#ops) 20 -ytes 32--it source IP address Type o/ 32--it destination IP address transport options (if any$ protoco* 8ata Destination machine Pv4 Packet Format: 4hat the router cares about P >eader Size o/ datagram ;*ags & Lengt# !#eader+data$ Fragmentation to sp*it large 0 1+ 16 (1 messages P Oer4 @ >L ToS Tota* *engt#(166-its) 16--it identification Nags 136-it /rag oM Time to P #eader TTL protoco* 166-it #eader c#ecksum Li1e !#ops) 20 -ytes 32--it source IP address Type o/ 32--it destination IP address transport options (if any$ protoco* 8ata Destination machine nternet Protocol Features &outing – IP packet goes anyw#ere ― Just need the IP address ;ragmentation – sp*it big messages into sma**er ― Still message si7e limit (6@Q$ ― Reassemble at destination ― >ides diferences in p#ysical layers <u*tiple protocols on top: ― 1 byte to specify protoco*: ● C<P (1), TCP (6$% 0DP (1C), IPSec !+0, 51), … ― Registry o/ protocol num-ers nternet Protocol Non6Features 0nre*iable delivery ― IP packets are not guaranteed ― <ay be lost -y underlying physical layer (radio noise'$ ― <ay be dropped i/, e.g., router out o/ resources Out-of-order/duplicate de*ivery ― Tolerance to physical layer retrying packets ― Tolerance to multiple paths Layering Comple2 ser1ices from simpler ones TCP/IP networking layers: ― Physical + Link (4ireless, Ethernet, ..,$ ● Unrelia-*e, loca* e2c#ange o/ limited-si7ed frames ― Network !IP$ 9 routing -etween networks ● Unrelia-*e, glo-a* e2c#ange o/ limited6si7ed packets ― "ransport ("CP1 UDP) – streams ● Reliablity, streams of bytes instead of packets, … ― .pplication – everything on top o/ sockets =*ue: Adding ;unctionality Physical Reality: Frames Abstraction: Stream Limited Size Arbitrary Size 2nordered rdered (sometimes) 2nreliable Reliable (achine-to-machine Process-to-process On*y on local area net Routed anywhere .synchronous Synchronous Ordered Messages: Problem Want to divide message into packets, e,g. ― H=5T /static/hw/hw1.pd/ HTTP/1.0" into ― H=5T /static" and "/hw/hw1.pd/ HTTP/1.0" 4#y? Not can't always fit request in one packet (IP: 64K *imit 9 think of uploading a fi*e) IP mig#t reorder these packets: ― H/hw/hw1.pd/ HTTP/1.0H, then ― H=5T /static" Ordered Message: Solution Ordered messages on top of unordered ones: ― .ssign seIuence num-ers to packets: 0,1,2,3,4…, ― / packets arrive out o/ order, hold and put back in order be/ore delivering to user (through socket inter/ace$ ― For instance, #old onto #3 until #2 arrives, etc. Tricky case: packets from "o*d" connections Reliable Message Deli1ery: Problem .** physical networks can gar-*e and/or drop packets ― Physical hardware pro-lems (-ad wire% -ad signa*$ ― There/ore, IP can gar-le/drop packets (doesn't fix this$ Suilding re*ia-*e message de*ivery ― Con"rm that packets arrive e7actly once ― Con"rm that packets aren't gar-led Using Acknowledgements % B % B P acket "imeout ack Checksum: detect gar-*ed packets Receiver send packet to acknowledge when packet received and ungar-*ed: ― No acknowledgement' Resend after timeout 4#at i/ ack dropped? ― Packet is resent !wastefu*$% second c#ance to acknowledge it, 4hat about duplicates' Recal*: Sequence number Simplest version: 1 bit (0/1): % B Problem: What if packet delayed too muc#' 4aiting for Acks: Performance Time from Soda to google,com and back: 8 ms Maximum packet size: ~1500 bytes % B 1500 bytes / 8 ms = 188 KByte/s 4indow-based acknowledgements !1) A pkt B 4indowing protocol !not Iuite TCP$ #0 N=5 Send up to N packets without ack ― .**ows pipelining of packets Queue 0 ― k# N *imits 8ueue si6e ac 4 k# ac Bot! source and destination need to store N packets !w#y'$ 5ac# packet #as seIuence num-er ― .ck says Vreceived all packets up to sequence number 9W ― .d1ances window Sliding Window 0 1 2 3 4 5 6 7 %0K 0 0 1 2 3 4 5 6 7 Window represents packets: ― That might need to -e retransmitted !dropped/gar-led$ ― That receiver needs space to -uMer (ordering) 4indow-based acknowledgements !2) Packet lost' ― &esent -y timeout, again .cknow*edgement lost? ― Packet resent, causing ack to -e resent (again$ ― / we're lucky acknowledged together with later packet instead 8iscard out o/ order packets' ― / no, need some way to indicate Hholes" Transmission Control Protocol !TCP$ Stream in; Stream out; ))6/7w'uts Router Router gfedcba Transmission Control Protoco* !TCP) ― Reliable b/te stream between two processes on diferent mac#ines o1er Internet (read, write$ ― Si-directiona* (two streams for e1ery connection) TCP 8etai*s ― ;ragments byte stream into packets, hands packets to IP ― 4indow-based acknowledgement protoco* ― Automatica**y retransmits lost packets ― Adjusts rate o/ transmission to a1oid congestion ● <ec#anism: Window size TCP 4indows and Sequence Numbers Se8uence Numbers 5ent 5ent Not yet acked not acked sent Sender Recei'ed Recei'ed Not /et Given to app Bu=ered recei'ed Recei'er Sender has three regions: ― sent and ack’ed ― sent and not ack’ed ― not yet sent TCP 4indows and Sequence Numbers Se8uence Numbers 5ent 5ent Not yet acked not acked sent Sender Recei'ed Recei'ed Not /et Given to app Bu=ered recei'ed Recei'er Receiver has three regions: ― received and ack’ed (given to app*ication$ ― received and buMered ― not yet received (or discarded because out o/ order$ 4indow-Based 1--Acknowledgements1.- 1+- 2$- 2*- $--(TCP)$.- $,- .-- SeI: Seq:100 Seq:140 SeI:190 SeI:230 SeI:260 SeI:300 SeI:340 380 Si7e:@0 Size:50 Size:40 Si7e:30 Si7e:40 Si7e:40 Si7e:40 Si7e: 20 %:10->$-- 5e8:1-- %:14->260 5e8:1.- %:19->210 5e8:2$- %:19->210 5e8:2*- %:19->210 5e8;$-- %:19->210 5e8:1+- Retransmit? %;$.->60 5e8;$.- %;$,->20 5e8;$,- %;.-->0 Selecti1e Acknowledgement Option !SACK$ Oanil*a TCP Acknow*edgement ― 5very message encodes SeIuence num-er and .ck ― Can include data for /orward stream and/or ack for reverse stream Se*ective Acknowledgement ― .cknowledgement in/ormation includes not just one num-er, -ut rather ranges o/ received packets ― TCP ption (e2tension$ – o/ten not used ― Turns out e2tending TCP is hard !compati-ility pro-lems) Congestion &outer Congestion: too muc# data somew#ere in network P's solution: dro packets Sad for TCP ― Lots o/ retransmission – wasted work ― Lots o/ waiting for timeouts – underuti*i7ed connection Congestion Avoidance &outer Solution: adjust window size .
Recommended publications
  • The GNU C Library: System & Network Applications
    The GNU C Library: System & Network Applications For GNU C Libraries version 2.3.x by Sandra Loosemore with Richard M. Stallman, Roland McGrath, Andrew Oram, and Ulrich Drepper This manual documents the GNU C Libraries version 2.3.x. ISBN 1-882114-24-8, First Printing, March 2004. Published by: GNU Press Website: www.gnupress.org a division of the General: [email protected] Free Software Foundation Orders: [email protected] 51 Franklin St, Fifth Floor Tel: 617-542-5942 Boston, MA 02110-1301 USA Fax: 617-542-2652 Copyright © 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2, or any later version published by the Free Software Foundation; with the Invariant Sections being “Free Software and Free Manuals”, the “GNU Free Documentation License”," and the “GNU Lesser General Public License”, with the Front Cover Texts being “A GNU Manual”, and with the Back Cover Texts as in (a) below. A copy of the license is included in the section entitled “GNU Free Documentation License”. (a) The Back Cover Text is: You are free to copy and modify this GNU Manual. Buying copies from GNU Press supports the FSF in developing GNU and promoting software freedom. Cover art by Etienne Suvasa. Cover design by Jonathan Richard. Printed in USA. i Short Contents 1 Introduction ............................................ 1 2 Low-Level Input/Output .................................. 17 3 File-System Interface .................................... 71 4 Pipes and FIFOs ...................................... 119 5 Sockets .............................................. 125 6 Low-Level Terminal Interface ...........................
    [Show full text]
  • DNS and the DNS Cache Poisoning Attack
    Lecture 17: DNS and the DNS Cache Poisoning Attack Lecture Notes on “Computer and Network Security” by Avi Kak ([email protected]) June 25, 2021 3:21pm ©2021 Avinash Kak, Purdue University Goals: The Domain Name System BIND Configuring BIND Running BIND on your Ubuntu laptop Light-Weight Nameservers (and how to install them) DNS Cache Poisoning Attack Writing Perl and Python code for cache poisoning attacks Dan Kaminsky’s More Virulent DNS Cache Poisoning Attack CONTENTS Section Title Page 17.1 Internet, Harry Potter, and the Magic of DNS 3 17.2 DNS 5 17.3 An Example That Illustrates Extensive DNS 13 Lookups in Even the Simplest Client-Server Interactions 17.4 The Domain Name System and The dig Utility 28 17.5 host, nslookup, and whois Utilities for Name 42 Lookup 17.6 Creating a New Zone and Zone Transfers 45 17.7 DNS Cache 48 17.7.1 The TTL Time Interval 51 17.8 BIND 56 17.8.1 Configuring BIND 58 17.8.2 An Example of the named.conf Configuration File 64 17.8.3 Running BIND on Your Ubuntu Laptop 68 17.9 What Does it Mean to Run a Process in a 70 chroot Jail? 17.10 Phishing versus Pharming 73 17.11 DNS Cache Poisoning 74 17.12 Writing Perl and Python Code for Mounting a 81 DNS Cache Poisoning Attack 17.13 Dan Kaminsky’s More Virulent Exploit for 92 DNS Cache Poisoning 17.14 Homework Problems 99 Computer and Network Security by Avi Kak Lecture 17 Back to TOC 17.1 INTERNET, HARRY POTTER, AND THE MAGIC OF DNS If you have read Harry Potter, you are certainly familiar with the use of owl mail by the wizards and the witches.
    [Show full text]
  • Working with Oracle® Solaris 11.4 Directory and Naming Services: LDAP
    ® Working With Oracle Solaris 11.4 Directory and Naming Services: LDAP Part No: E61012 November 2020 Working With Oracle Solaris 11.4 Directory and Naming Services: LDAP Part No: E61012 Copyright © 2002, 2020, Oracle and/or its affiliates. License Restrictions Warranty/Consequential Damages Disclaimer This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. Warranty Disclaimer The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. Restricted Rights Notice If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs (including any operating system, integrated software, any programs embedded, installed or activated on delivered hardware, and modifications of such programs) and Oracle computer documentation or other Oracle data delivered to or accessed by U.S. Government end users
    [Show full text]
  • Z/OS V2R4.0 Communications Server: IP IMS Sockets Guide Summary of Changes for IP IMS Sockets Guide
    z/OS Communications Server Version 2.Release 4 IP IMS Sockets Guide IBM SC27-3653-40 Note: Before using this information and the product it supports, be sure to read the general information under “Notices” on page 303. This edition applies to Version 2 Release 4 of z/OS® (5650-ZOS), and to subsequent releases and modifications until otherwise indicated in new editions. Last updated: 2021-06-21 © Copyright International Business Machines Corporation 2000, 2020. US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents Figures................................................................................................................. ix Tables................................................................................................................ xiii About this document.......................................................................................... xvii Who should read this document.............................................................................................................. xvii How this document is organized............................................................................................................. xviii How to use this document.......................................................................................................................xviii How to contact IBM service............................................................................................................... xviii Conventions and
    [Show full text]
  • Sockets/TCP/IP
    CS162: Operating Systems and Systems Programming Lecture 19: Networking: Sockets/TCP/ P 22 Ju"y 201$ Char"es &eiss %ttps://cs162.eecs.berkeley'edu/ Recal": Echo client-ser+er code void client(int sockfd) { int n; char sndbuf[MAXIN]; char rcvbuf[MAXOUT]; while (getreq(sndbuf, MAXIN)) { /* prompt + read */ write(sockfd, sndbuf, strlen(sndbuf)); /* send */ n=read(sockfd, rcvbuf, MAXOUT-1); /* receive */ if (n <= 0) return; /* handle error or EOF */ write(STDOUT_FILENO, rcvbuf, n); /* echo */ 3 3 void server(int consockfd) { int n; char reqbuf[MAXREQ]; while (1) { n = read(consockfd,reqbuf,MAXREQ-1); /* Recv */ if (n <= 0) return; /* handle error or EOF */ n = write(STDOUT_FILENO, reqbuf, strlen(reqbuf)); n = write(consockfd, reqbuf, strlen(reqbuf)); /* echo */ 3 2 3 Recal": Socket Setup o+er TCP/ P Server Socket new socket socket connection socket Client Server Specia" kind o- socket: server socket ― .as fi"e descriptor ― Can0t read or write Two operations: ― "isten1): start a""owing c"ients to connect ― accept(): create a new socket -or a particu"ar c"ient , Recal": Client Protocol char *hostname; char *portname; int sockfd; struct addrinfo *server; server = buildServerAddr(hostname, portname); /* Create a T P socket */ /* server-$ai%famil&: A(%)*+! ()Pv,) or A(%)*+!6 ()"v6) */ /* server-$ai%sockt&pe' S. /%ST0EA1 (byte-oriented) */ /* server-$ai%protocol' I""0.!.%! " */ sockfd = socket(server#>ai_family, server#$ai_socktype, server#$ai_protocol) /* Connect to server on port */ connect(sockfd, server#$ai_addr, server#>ai_addrlen); /* Carr&
    [Show full text]
  • Developer's Guide to Oracle® Solaris 11 Security
    ® Developer's Guide to Oracle Solaris 11 Security Part No: E36855 July 2014 Copyright © 2000, 2014, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable: U.S. GOVERNMENT END USERS. Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government. This software or hardware is developed for general use in a variety of information management applications.
    [Show full text]
  • Z/OS Communications Server Version 2.Release 4
    z/OS Communications Server Version 2.Release 4 IP CICS Sockets Guide IBM SC27-3649-40 Note: Before using this information and the product it supports, be sure to read the general information under “Notices” on page 583. This edition applies to Version 2 Release 4 of z/OS® (5650-ZOS), and to subsequent releases and modifications until otherwise indicated in new editions. Last updated: 2021-06-21 © Copyright International Business Machines Corporation 2000, 2020. US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents Figures............................................................................................................... xiii Tables.................................................................................................................xxi About this document......................................................................................... xxiii Who should read this document............................................................................................................. xxiii How this document is organized............................................................................................................. xxiii How to use this document.......................................................................................................................xxiv How to contact IBM service............................................................................................................... xxiv Conventions and
    [Show full text]
  • TCP/IP Programmer's Reference
    VSI OpenVMS TCP/IP Programmer's Reference Document Number: DO-DVTPRG-01B Publication Date: January 2020 This manual documents the programmer's interface to VSI TCP/IP and is intended to guide the programmer in developing applications that use network services. Revision Update Information: This guide supercedes the VSI TCP/IP Programmer's Reference, Version 10.5. Operating System and Version: VSI OpenVMS Version 8.4-2L1 or higher Software Version: VSI TCP/IP for OpenVMS Version 10.6 VMS Software, Inc., (VSI) Bolton, Massachusetts, USA TCP/IP Programmer's Reference: Copyright © 2020 VMS Software, Inc. (VSI), Bolton, Massachusetts, USA Legal Notice Confidential computer software. Valid license from VSI required for possession, use or copying. Consistent with FAR 12.211 and 12.212, Commercial Computer Software, Computer Software Documentation, and Technical Data for Commercial Items are licensed to the U.S. Government under vendor's standard commercial license. The information contained herein is subject to change without notice. The only warranties for VSI products and services are set forth in the express warranty statements accompanying such products and services. Nothing herein should be construed as constituting an additional warranty. VSI shall not be liable for technical or editorial errors or omissions contained herein. HPE, HPE Integrity, HPE Alpha, and HPE Proliant are trademarks or registered trademarks of Hewlett Packard Enterprise. Intel, Itanium and IA64 are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. Java, the coffee cup logo, and all Java based marks are trademarks or registered trademarks of Oracle Corporation in the United States or other countries.
    [Show full text]
  • Oracle® Solaris 11.3 Programming Interfaces Guide
    ® Oracle Solaris 11.3 Programming Interfaces Guide Part No: E54815 April 2019 Oracle Solaris 11.3 Programming Interfaces Guide Part No: E54815 Copyright © 2001, 2019, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S.
    [Show full text]
  • Working with Oracle® Solaris 11.3 Directory and Naming Services: LDAP
    ® Working With Oracle Solaris 11.3 Directory and Naming Services: LDAP Part No: E54912 September 2018 Working With Oracle Solaris 11.3 Directory and Naming Services: LDAP Part No: E54912 Copyright © 2002, 2018, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.
    [Show full text]
  • TI Network Developer's Kit (NDK) API Reference Guide (Rev. K)
    TI Network Developer's Kit (NDK) API Reference Guide Literature Number: SPRU524K May 2001–Revised October 2017 Contents Preface ........................................................................................................................................ 9 1 Introduction ....................................................................................................................... 11 1.1 What This Document Covers ............................................................................................. 12 1.2 Introduction.................................................................................................................. 12 1.3 Supplemental API Information............................................................................................ 13 2 Operating System Abstraction API ....................................................................................... 14 2.1 Operating System Configuration ......................................................................................... 15 2.1.1 Configuration Structure ........................................................................................... 15 2.2 Task Support................................................................................................................ 17 2.2.1 Function Overview ................................................................................................ 17 2.2.2 Task API Functions ............................................................................................... 18 2.3 Semaphore
    [Show full text]
  • Programming Socket Programming
    IBM i Version 7.2 Programming Socket programming IBM Note Before using this information and the product it supports, read the information in “Notices” on page 179. This edition applies to version IBM i 7.2 (product number 5770-SS1) and to all subsequent releases and modifications until otherwise indicated in new editions. This version does not run on all reduced instruction set computer (RISC) models nor does it run on CISC models. This document may contain references to Licensed Internal Code. Licensed Internal Code is Machine Code and is licensed to you under the terms of the IBM License Agreement for Machine Code. © Copyright International Business Machines Corporation 2001, 2013. US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents Socket programming............................................................................................. 1 What's new for IBM i 7.2..............................................................................................................................1 PDF files for Socket programming...............................................................................................................1 Prerequisites for socket programming........................................................................................................3 How sockets work........................................................................................................................................3 Socket characteristics..................................................................................................................................6
    [Show full text]