212 F Network
Programming and Design TCP/IP
5 March 2009Philip Tsang
New Learning EcologyInnovation in LT&R: 3C + C Skills, YouTube and Podcasting
Critical Thinking
Communicative
T<&L
Collaborative
Contents
Agenda for TCP/IP
• Review of Quizzes of 25 /27 Feb• Cover Key concepts in Unit 3• TCP/IP architecture & Basic concepts• Internet Layer
IP addressing, Subnet, IP Routing, Routing Table, Routing protocols, CIDR, ICMP
• Address translationARP : IP address -> MAC addressRARP : MAC address -> IP address
• Transport LayerTCP (Transmission Control Protocol)UDP (User Datagram Protocol)
Quiz of 25 Feb 2008• Name:________________• Student #______________• Date: 25 Feb 2008• 212F TCP/IP Self Assessment question Quiz• (1) Identify and describe two methods to handle the rapid depletion
of IP addresses. [2 marks]• (2) Your boss asks you to create 124 sub-networks with the
assigned Class B address 150.150.0.0. Answer the following questions:– What is the subnet mask? [1/2]– List the first three valid network numbers. [1/2]– List the range of host IP addresses on those three networks. [2]– List the last valid network and range of IP addresses. [2]– How many subnets does this solution allow? [2]– How many host addresses can be on each subnet? [1]
• Answer• (a)To have 124 sub-networks, we need to borrow 7 bits from the
host field. So the subnet mask is 255.255.254.0.1• (b) 150.150.2.0, 150.150.4.0, • (c) 150.150.2.1.– 150.150.3.254; 150.150.4.1-
150.150.5.254;150.150.6.1-150.150.7.254
• [See following IP Subset Calculator screen capture]2
• d) Network: 150.150.252.0• Range of IP addresses: 150.150.252.1-150.150.253.2542
• (e)In part • the 2^N-2 equation where N =10, 2^7-2=126. 126 subnets can be
allowed.2• (f) The subnet mask 255.255.254.0 has 9 bits set to 0.• Use the 2^N-2 equation where N =6, 2^9-2=512512 host addresses
can be on each subnet.
• (1)• The first method is using the private IP for
the local network. Since private IP can use in different local network repeatedly. So the hosts no need to assign the public IP.
• • The second method is using more bits to
represent the IP address. So the number of IP address will increase.
•
• (2)• a) The subnet mask used to determine what
subnet an IP address belongs to.• • b) The first three valid network numbers are
150.150.1.0, 150.150.2.0, 150.150.3.0• • c) On 150.150.1.0, the range of host IP
addresses is 150.150.1.1 - 150.150.1.254• On 150.150.2.0, the range of host IP
addresses is 150.150.2.1 - 150.150.2.254• On 150.150.3.0, the range of host IP
addresses is 150.150.3.1 - 150.150.3.254• • d) The last valid network is 150.150.254.0• Its range of host IP addresses is
150.150.254.1 – 150.150.254.254• • e) This solution allows 128 subnets.• • f) Addresses can be on each subnet are
510.
• Subnet mask consist the number between 0~255,it allows you to identify which part of an IP address is reserved for the network, and which part is available for host use. Also it required setting in the TCP/IP control panel.
List the first three valid network numbers. [1/2]
• Class A : Network 8 bits; (0=Reserved ;127=Loopback address) (e.g. US government , IBM)
• Class B : Network 16 bits; Range=128-191• Class C : Network 24 bits. Range=192-223
c. List the range of host IP addresses on those three
networks. [2]• Class A: Host address is denoted by last
24 bits or last 3 octets.
• Host IP configuration for class A can be shown as -
• network.host.host.host
• Class B: Host address is denoted by last 16 bits or last 2 octets.
• Host IP configuration for class B can be shown as -
• network.network.host.host
• Class C : Host address address is denoted by last 8 bits or last octet.
• Host IP configuration for class C can be shown as -
• network.network.network.host
Quiz of 27 Feb 2008
• Repeat your answers of Quiz of 25 Feb through a multimedia presentation
But How?
• Describe the concept of the Internet architecture• Identify the different roles of IP, TCP and UDP in
Internet communication• Describe the features of the IP• Discuss IP naming and address translation
mechanisms• Demonstrate an understanding of IP routing• Compare connection-oriented and connectionless
communication• Discuss TCP protocol mechanism• Discuss UDP protocol mechanism• Analyze the benefits & limitations of TCP and UDP
Objective of Unit 3
5 questions for communication between 2 s/w (eg. Client & server) on 2 different machines
1. How to identify a machine ??2. How to identity a s/w running in a machine ??3. How to transfer data from one machine to
another ??4. How to ensure all data are correctly received
by destination s/w ??5. What to do if there is network congestion due
to :• Transmitting host sends out data too fast??• receiving capability of destination machine is not enough
(eg. Less processing power, memory, NIC speed, etc) ??
~~Architecture & basic concept~~
INTERNET (TCP/IP) architecture
Basic concepts (1)• Encapsulation & de-capsulation • De-multiplexing• IP address
uniquely identify a interface/host/subnet/network in INTERNET (more discussion in later section)
• TCP port & UDP port are differentEach application within a host is uniquely identified by a
port number; 16 bit; reserved well-known port : 1 ~ 1023
• Socket one end of each communication connectionUniquely identify which host, which application IP address + port number + protocol type (tcp or udp)
Basic concepts (2)
• Connectionidentified by a pair of sockets on both ends
of connection. (protocol type, source IP address, source port number, destination IP address, destination port number)
• MTU (Maximum Transmission Unit)Upper limit on size of data portion of
network access layer, excluding header and trailer
Different Network access (link) layer technologies have different MTU.
Encapsulation & De-capsulation
De-multiplexing
5 questions for communication between 2 s/w (eg. client & server) on 2 different machines
1. How to identify a machine IP address
2. How to identity a s/w running in a machine (IP address + transport layer protocol type + port number )
3. How to transfer data from one machine to another??
4. How to ensure all data are correctly received by destination s/w ??
5. What to do if there is network congestion due to : Transmitting host sends out data too fast; receiving capability of destination machine is not
enough (eg. Less processing power, memory, NIC speed, etc) ??
~~~~~~~~ Internet Layer ~~~~~~~~~•IP address•IP subnet & CIDR•IP routing•IP fragmentation & reassembly•ICMP & ARP
IP packet format
Functions of internet layer• Functions of internet layer :
1. Provide unique identification (i.e. logical IP address) to an interface of INTERNET node (eg. Host, router) or network/subnet Classful Classless (CIDR)
2. Packet forwarding (or routing)
3. Fragmentation
4. Reassembly
IP Address (1)• IP-v4 classful address :
32 bit long, four 8-bit fields, separated by period2 formats :
Decimal : 192.123.44.23 (note each field between period is 0 ~ 255), more convenient
Binary : 11000000.01111011.00110100.00010111Composed of 2 portions – network portion, host
portionAll hosts of same network must have same value on
network portionBased on first 4 bits (MSB) of IP address, it is
classified into 5 classes : class A through E. Only Class A through C can be assigned to a machine/host.
IP Address (2)
Class attendance quiz
• Illustrate with steps to identify/show the max value of the first decimal number of Class C address is 223.
•Send email to: [email protected]
• Subject: 212f Quiz> Your name + Your SN
IP Address (3)
• Network mask is used to specify which part of an IP address is network-portion.
• Consecutive bit of value “1” specify corresponding bit as network portion
Class (Default) network mask
A 255.0.0.0
B 255.255.0.0
C 255.255.255.0
IP Address (4)Class Network
portionHost
portionnumber of
usable
network
number of usable hosts per
network
A 0~127 0.0.1~
255.255.254
126 224-2
B 128.0~
191.255
0.1~
255.254
214 216-2
C 192.0.0~
223.255.255
1~254 221 28-2
D 224.0.0.0~239.255.255.25
5
N/A multicast N/A
E 240.0.0.0~255.255.255.25
5
N/A experiment N/A
IP Subnet (1)• What is sub-netting?
Divide a large network into a number of smaller subnets Each subnet is also a network, a broadcast domain. Subnets are
connected by router (not hub/LAN switch)
• How to sub-net? Network mask changes extends continuous ones towards right to host portion. The
extension part is called subnet portion. The network mask is now called subnet mask.
• Each IP address now consists of 3 portions Network, subnet, host portion
• Why sub-netting : Better utilization of IP addressing space Reduces network congestion by reducing broadcast domain Reduce number of hosts per subnet => better performance in
Ethernet
IP Subnet (2)
IP Subnet (3)
IP Subnet (4)
• Scenario 1 :• Class A network : 12.0.0.0
default network mask = 255.0.0.0Number of networks = 1Number of hosts per network = 2 24 -2
subnet mask=255.255.0.0Number of subnets = 256 –2 = 254Number of hosts per network = 2 16 –2
Effect : one class A network increases from 1 to 254 subnets but the number of hosts per subnet decreases from (2 24 –2) to (2 16 –2)
IP Subnet (5)
• Scenario 2 :• Class B network : 158.182.0.0
default network mask = 255.255.0.0Number of network = 1Number of hosts per network = 2 16 -2
subnet mask=255.255.240.0Number of network = 24 – 2 = 14Number of hosts per network = 2 12 – 2 = 4094
Effect : one class B network increases from 1 to 14 subnets but the number of hosts per subnet decreases from (2 16 –2) to 4094
IP Subnet (5)
• Scenario 3 :• Class C network : 192.182.0.0(?)
default network mask = 255.255.255.0Number of network = 1Number of hosts per network = 2 8 -2
subnet mask=255.255.255.240Number of network = 24 – 2 = 14Number of hosts per network = 2 12 – 2 = 4094
Effect : one class B network increases from 1 to 14 subnets but the number of hosts per subnet decreases from (2 16 –2) to 4094
IP Subnet Quiz
• Scenario 3 :• Class C network :
default network mask = XXXNumber of network = XNumber of hosts per network = XXX
subnet mask=XXXXXXNumber of network = XXXXNumber of hosts per network = XXX
Effect : one class B network increases from M to n subnets but the number of hosts per subnet decreases from N
Send answer to: [email protected] 212F Subnet Quiz>Your Name +SN
Online IP Calculatorhttp://www.subnet-calculator.com/
IP Routing principle• Unreliable; hop-by-hop routing
Each hop (router) only provide IP address of next best hop (router) to destination network/subnet
• Routing decision is made based on destination IP address of incoming packet to be routed and metrics for the path
• Each router/host has a routing table, from which routing decision is made
• Contents of routing table can be : Dynamic, learned from routing protocols (eg. RIP, OSPF, IGRP,
EIGRP) Default route by hard-coded Static by hard-coded Directly connected network/subnet
IP Routing table• Each entry of routing table must contain at least
following columns : IP address of destination network/subnet IP address of next hop (router) to destination
Note next hop is sometimes called gatewaymetric for that routeOutgoing interface to next hop
• Default gateway :Definition : When there is no entry in routing table matching
destination IP address, entry of default gateway will be used. Destination is represented by 0.0.0.0/0.0.0.0
Host with single interface : simplify by using default gateway entry
One more usage of default gateway. What is it?
IP default gateway
ARP (Address Resolution Protocol)
• Function : Get MAC address of other TCP/IP host, on the same segment, from IP address of that host(i.e. IP address -> MAC address)
IP V6• Previous discussion is for IPv4.• IPv6 is compatible with IPv4 with following
enhancement:1. IP address : 32 bits -> 128 bits => more IP available2. Support QoS for timing critical application such as Voice
over IP, video conference, etc.3. Support security extension for authenticating source,
providing integrity & encryption.4. Header processing is speed up to increase performance5. Addition of anycast address, which allows messages to be
sent to any of several possible service providers or to any of a related group of remote destinations, with the idea that any one of them can manage the forwarding of the packet to others.
• More : http://www.ipv6.org
IP - CIDR (1)
• Classless InterDomain Routing (CIDR)
• No more class boundary or subnet on IP address
• Combine multiple continuous smaller subnets (eg. Class C) into a larger supernet or CIDR block
• Representation of CIDR network : prefix + length
Eg. 158.182.4.40 /12
ICMP• ICMP (Internet Control Message Protocol) :• Network control and error reporting
test node reachability across an internetwork with echo and reply messages (eg. Ping)
stimulate more efficient routing with redirect messages (eg. ICMP redirect)
“time exceeded” messages to inform sources that a datagram has exceeded its allocated time to exist within the internetwork (eg. Traceroute, tracert)
Router advertisement and router solicitation messages
Labs and discussion of Quizzes
• Remember to submit your Quiz to [email protected]
•So far only half of your have submitted it.
5 questions for communication between 2 s/w (eg. Client & server) on 2 different machines
1.How to identify a machine IP address2.How to identity a s/w running in a machine IP address + transport layer protocol type + port number3.How to transfer data from one machine to another routing table + IP layer4.How to ensure all data are correctly received by destination s/w ??5.What to do if there is network congestion due to :
Transmitting host sends out data too fast; receiving capability of destination machine is not enough
(eg. Less processing power, memory, NIC speed, etc) ??
212 F Network
Programming and Design TCP/IP of 5-10 March 08
Philip Tsang
~~~~~ Transport Layer ~~~~~
TCP : connection-oriented
UDP : connectionless
TCP segment format
TCP – basics (1)• Connection-oriented; full-duplex • stream data transfer - segmenting data from
application• Data transfer involves 3 steps :
Connection establishment (3-way handshake) Actual data transfer Connection termination (4-way)
• Some terms:sequence number – identify each byte of segment dataacknowledge number – sequence number of next byte of
data sender expects to receive delayed acknowledge – acknowledgement does not
respond immediately for each received segment, wait until multiple segments are received => save bandwidth and processing power
TCP – basics (2)• Reliability is provided by :
Sequence number, Ack. number, delayed ack., Timeout & Retransmission, discard duplicate
Sender starts a timer for sending each packet.Receiver sends +ve acknowledge (ACK) some delays
after receiving packet If sender does not receive ACK for a packet when timer
expires (i.e. timeout), sender retransmits that packet– Retransmission may lead to duplicate packet. Duplicated
packet is discarded by receiver.
• Flow Control – sliding windows buffering. Buffer size is integral multiple of segment size. Sender transmits data continuously until number of segments sent without acknowledge equals length of window.
UDP datagram format
UDP
• User Data Protocol (UDP)ConnectionlessDiscrete datagramsUnreliable (NO Sequence & Ack.,
retransmission)High-speed, minimal overheadEg. Multimedia application, TFTP, SNMP
5 questions for communication between 2 s/w (eg. Client & server) on 2 different machines
1.How to identify a machine IP address2.How to identity a s/w running in a machine IP address + transport layer protocol type + port number3.How to transfer data from one machine to another routing table + IP layer4.How to ensure all data are correctly received by destination s/w -> TCP reliability5.What to do if there is network congestion due to :
Transmitting host sends out data too fast; receiving capability of destination machine is not
enough (eg. Less processing power, memory, NIC speed, etc) -> TCP flow control
~~~~ Application Layer ~~~~~•DNS•Trouble-shooting commands•BOOTP & DHCP•Telnet •FTP•SMTP
DNS (1)• Function of DNS
Resolve domain name (eg. www.ouhk.edu.hk) into IP address
• Why DNS ? For human being, it is easier to remember domain
name of a host rather than its IP address• Distributed and hierarchical domain name server &
database• Delegation of domain authority• Each DNS server can server its own domain or lower-
level domains• Each domain must be served by at least 2 DNS servers.
Why?
DNS (2)• Structure of domain spacing:
Hierarchical tree structureMultiple levels :
Root domain : . Top level domains :
o By functional : com, net, org, mil, edu, gov, …o By geographical : hk, ca, jp, ….
Lower levels : eg. ibm.com, novell.com, cisco.com,…
DNS (3)
BOOTP (BOOTstrap protocol)
• BOOTP server maintains and provides auto-configuration of clientsClient’s IP address, IP address of default
router; server’s IP address, server’s host name
DHCP (Dynamic Host Configuration Protocol)
• Similar to BOOTP with 2 major differences:More configuration options
Client’s IP address, subnet mask, IP address of default router, IP address of DNS server, other options
Lease time for IP assignment can be finite. Allows release and reallocation of configuration information => dynamic
Note that permanent allocation is still possible
Telnet• What is a Telnet Client? In client/server computing, you need to be able to
send data to and receive data from a host. To do this, a general terminal or a terminal emulator is normally used. Naturally, the terminal or the PC that is running a terminal emulator must be connected to the server or mainframe computer, because otherwise data transmission would not be possible. To connect the terminal to the server, there are various different methods that can be used. Among these methods are serial cables, modems and existing networks. For a long time, the most common network connection method was Telnet, a standard protocol for connecting two different computers. With Telnet, you can connect to the server, input commands, and run programs. Nevertheless, Telnet has one major drawback: all data is exchanged without any form of encryption.
• In a corporate environment where LAN cables and infrastructure are controlled by the owners, Telnet may well be sufficient. However, it can present a serious security risk when you re transmitting over a wide area �or using public lines. When you're using Telnet, anybody with some network knowledge and tools can monitor the data exchange, even gaining access to details like usernames and passwords. For this reason, SSH (Secure Shell) is usually a better alternative nowadays.
• http://www.emtec.com/zoc/telnet-client.html
Telnet
• - What is Telnet?Telnet is a user command and an underlying TCP/IP protocol for accessing remote computers. Through Telnet, an administrator or another user can access someone else's computer remotely. On the Web, HTTP and FTP protocols allow you to request specific files from remote computers, but not to actually be logged on as a user of that computer. With Telnet, you log on as a regular user with whatever privileges you may have been granted to the specific application and data on that computer.
telnet
• RFC 854 (RFC854)
• http://www.faqs.org/rfcs/rfc854.html
Additional information
• IANA - oversee allocation of port number of Internet Protocol;
• ICANN (APNIC, RIPE, ARIN) – allocation of IP address in Asia Pacific, Europe & America respectively
• INTERNIC – domain name registration
exercises
• Select five .hk site and ‘telnet them’ to see the results.
• Write a C/shell/script to automatically telnet hosts on a file.
FTP• File FTP is an acronym for File Transfer Protocol.
• - File Transfer Protocol (FTP), a standard Internet protocol, is the simplest way to exchange files between computers on the Internet. Like the Hypertext Transfer Protocol (HTTP), which transfers displayable Web pages and related files, and the Simple Mail Transfer Protocol (SMTP), which transfers e-mail, FTP is an application protocol that uses the Internet's TCP/IP protocols. FTP is commonly used to transfer Web page files from their creator to the computer that acts as their server for everyone on the Internet. It's also commonly used to download programs and other files to your computer from other servers.
• As a user, you can use FTP with a simple command line interface (for example, from the Windows MS-DOS Prompt window) or with a commercial program that offers a graphical user interface. Your Web browser can also make FTP requests to download programs you select from a Web page. Using FTP, you can also update (delete, rename, move, and copy) files at a server. You need to logon to an FTP server. However, publicly available files are easily accessed using anonymous FTP.
• Basic FTP support is usually provided as part of a suite of programs that come with TCP/IP. However, any FTP client program with a graphical user interface usually must be downloaded
• from the company that makes it. • http://www.kb.indiana.edu/data/aerg.html
http://www.w3.org/Protocols/rfc959/
commands
• Get• Put• Del• Binary• Cd• Lcd• Dir• quite
SMTP• Simple mail Transfer Protocol• pronounced as separate letters) Short for Simple Mail Transfer Protocol, a
protocol for sending e-mail messages between servers. Most e-mail systems that send mail over the Internet use SMTP to send messages from one server to another; the messages can then be retrieved with an e-mail client using either POP or IMAP. In addition, SMTP is generally used to send messages from a mail client to a mail server. This is why you need to specify both the POP or IMAP server and the SMTP server when you configure your e-mail application.
• [pronounced as separate letters) Short for Simple Mail Transfer Protocol, a protocol for sending e-mail messages between servers. Most e-mail systems that send mail over the Internet use SMTP to send messages from one server to another; the messages can then be retrieved with an e-mail client using either POP or IMAP. In addition, SMTP is generally used to send messages from a mail client to a mail server. This is why you need to specify both the POP or IMAP server and the SMTP server when you configure your e-mail application. ]
• [See also http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol]
SMTP exercises
• Select five com.hk sites and five .com and ‘telnet to their SMTP port’ to see the results.
• Write a C/shell/script to automatically telnet hosts on a file.
TCP/IP Administration Tools
• Netstat
• Ifconfig
• Ping
212 (April 2007) Network
Programming and DesignTutorial 4 for group 1
(Internet application development on the Unix Platform)
Course Coordinator : Dr. Philip TsangTutor : Mr. Joe Lee
URL of my teaching website : http://ucourse.ouhk.edu.hk/~t441051/ct212
Agenda for Tutorial 4• Review for Unit 3• Objectives of Unit 4• Your Linux/UNIX accounts provided by OUHK• Linux/UNIX architecture• About shell• Linux/UNIX file and directory• Linux/UNIX permission right• Hint for Linux/UNIX• Linux/UNIX editor • File transfer (ftp, wsftp)• Shell programming• Compiling C program in Linux/UNIX
• Identify the key features of the UNIX programming environment
• Discuss the concept of UNIX shells• Discuss syntax of UNIX commands• Describe the UNIX file and directory systems• Introduce a pico text editor in UNIX• Introduce some basic concepts in Shell
programming• Describe the compilation tool available in
UNIX
Objective of Unit 4
Linux/UNIX architecture
kernel
shell
application
• 3 parts :
1. Utility, command or script : eg. ls, mkdir, sort, named, ..
2. Shell (command interpreter) • Interpret command or script for kernel execution
• Provide working environment for your login session
• Provides script language
3. Kernel Driver code Actual Interface with memory, I/O Execution of command
Linux/UNIX architecture
• In using Linux/UNIX, you are always facing shell:
1. When you login, you will be provided with a default shell (working shell), which provides a working environment for you.
2. When you run a shell script or command, a shell will be invoked to interpret your shell script or command.
– Shell type of this invoked shell can be of same or different from your working environment shell.
– This is controlled by first line of your shell script (eg. #!/bin/sh)
About Shell (1)
• Different shell type provides: Different working environment, which can be
customized by your startup script Different startup script Different syntax of shell script statement
• Default shell of Red Hat Linux is k-shell (ksh)• How to know my current working shell
– Echo $SHELL
• How to change your default shell1. login to the system2. Type “chsh”, then input pathname of your desired shell
Pathname of all shells are /bin/*sh
About Shell (2)
About Shell (3) – startup script
• Function : setup initial environment variables when you login
shell System-wide User-wide
Bourne (sh) /etc/profile ~/.profile
C (csh) /etc/csh.login ~/.cshrc , then ~/.login
Korn (ksh) /etc/profile ~/.profile
Bash (bash) ~/.bash_profile
Tcsh (tcsh)
Directory & file (1) – file typeFirst column represents file type :
normal file (-)directory (d)device file (b or c)link file (l)
Directory & file (2) - hierarchy
Directory & file (3) – file reference You can reference file/directory by relative or absolute pathname
Current directory (shown by pwd)1. Absolute pathname (begins with “/”)
2. Relative pathname (relative to current directory)Begins with either “.” (current directory) or “..” (parent directory)
Directory & file (4) - wildcard
• To reference a group of files/directories with common in filename, we use “wildcards”:– * matches any (zero or more) characters except
that first character cannot be “.”– ? matches any single character except “.”– [a-z,A-Z,0-9] matches any single character which
is alphanumeric– [!a-z,A-Z,0-9] matches any single character which
is not alphanumeric
Directory & file (5) - Command• To display current directory : pwd• Change current directory : cd new_dir_pathname• Create a directory : mkdir dir_name• Delete a directory : rmdir dir_name (dir. must be
empty) or rm -R dir_name (even dir. is not empty)• List content of a directory : ls –l dir_pathname• Delete file(s) : rm filename• Display content of a file :
cat filename or more filename
• Copy or overwrite file : cp src_filename dest_filename
• Rename file : mv old_filename new_filename• Move file : mv src_filepathname new_filepathname
File permission right (1)
File owner
These 9 columns represents the permission rights for 3 types of users – 3 columns for file owner, 3 columns for group owner, 3 columns for others.
Only file owner and root can change the permission right.
To display permission right of file
Group owner Filename
File permission right (2) –File ownerTo display permission right of file
These 3 columns represents the permission rights for file owner. File owner has read ( r ) , write (w) , execute (x) right for file AA2. Numerically, his right is 700 (111 000 000)
File permission right (3) – group ownerTo display permission right of file
These 3 columns represents the permission rights for group owner. Group owner has read ( r ) , no write (-) , execute (x) right for file BB. Numerically, his right is 750 (111 101 000)
File permission right (4) – othersTo display permission right of file
These 3 columns represents the permission rights for others. Others has read ( r ) , no write (-) , execute (x) right for file CC. Numerically, his right is 705 (111 000 101)
• How to change permission right
File permission right (5) – command
chmod is the command
700 is New permission rightAA is the filename
Directory permission right (1)To display permission right of directory
Still classify users into 3 types – file owner, group owner, othersStill classify users into 3 types – file owner, group owner, others
Meaning of r, w, x is different from that for file. Meaning of r, w, x is different from that for file.
r : allow listing content of directory (i.e. ls /dir1/*)r : allow listing content of directory (i.e. ls /dir1/*)
x : allows enter (i.e. cd ) into the directoryx : allows enter (i.e. cd ) into the directory
w + x : allow creating, deleting, renaming files within the w + x : allow creating, deleting, renaming files within the directorydirectory
Numeric permission is similar to that for file – 700 (Numeric permission is similar to that for file – 700 (111111 000000 000000))
Directory permission right (2)To display permission right of directory
Setting “dir2 with this permission right (xx1)” + “read right (xx4) Setting “dir2 with this permission right (xx1)” + “read right (xx4) for html files under dir2” for html files under dir2”
html files under dir2html files under dir2 can be read by everyone ( can be read by everyone (othersothers) via ) via browserbrowser
Numeric permission is 701 (Numeric permission is 701 (111111 000000 001001))
Directory permission right (3)To display permission right of directory
Setting “dir3 with this permission right (xx5)” + “read right (xx4) Setting “dir3 with this permission right (xx5)” + “read right (xx4) for html files under dir3” for html files under dir3”
html files under dir3html files under dir3 can be “ can be “readread by everyone ( by everyone (othersothers) via ) via browser” + “everyone (browser” + “everyone (othersothers) can ) can list filenameslist filenames of files under dir3 of files under dir3 via browser”via browser”
Numeric permission is 705 (Numeric permission is 705 (111111 000000 101101))
• How to change permission right for a directory
Directory permission right (4)
chmod is the command
704 is New permission right dir1 is directory name
To change permission right of “dir2, all files and subdirectory under dir2” recursively, use option “-R”
Useful hints for Linux/UNIX• all input to UNIX is case-sensitive• command syntax :
command_name [-options] [arguments]• You can get online help of a command by “man
command_name”• types of variables – environment, shell variable• check your environment variable : env • default path : echo $PATH• your home directory : $HOME (or ~)• goto your home directory : cd• How to change your environment variable (eg. $TERM) : export TERM=vt100• change your password : passwd
(follow the prompt message to change your password)
Fast Linux shell commands intro
• http://www.youtube.com/watch?v=LssPpKtb2oQ&feature=related
UNIX editors (1)• 2 most common editors :
– pico • more user-friendly,
• Easy to learn,
• more suitable for normal user
– vi • more powerful,
• hard to learn,
• more suitable for administrator
• learn by yourself through Joe’s Website -> reference page and news page
File transfer• 4 tools : ftp or wsftp or winscp, filezilla
– ftp• already exist on every unix machine or
win9x/NT/2000• Command mode• Commands : open, quit, help, ascii, binary, put,
mput, get, mget, prompt
– wsftp • Freeware, downloadable from Joe’s Website ->
News page• GUI mode, user-friendly• Installed by yourself• run on win9x/XP
Shell programming (1) – script basics
• How does UNIX know this is shell script?– It check the first line of script file for #!/bin/ksh (or #!/bin/sh or #!/bin/csh)
• How to make shell script executable by yourself?– In unix prompt, chmod 700 script_filename
• How to run shell script?– For ksh or sh script,
• Pathname_of_script (eg. ./test.ksh or /data1/home1/tutors/t441051/test.ksh)
– For csh script,• source Pathname_of_script (eg. source ~/.test.csh)
ASCII Animation
• http://www.youtube.com/watch?v=jnlpbQ5IxHk&feature=related
Shell programming (2) – script basics
• Contents of a script can be:– Comment prefixed by #– Shell built-in commands (mkdir, cd, echo, eval, etc.)– UNIX external utilities (cp, tar, grep, awk, etc.)– Shell variable assignment statement (Var_name=“test”;
variable is declared and assigned at the same time)– Arithmetic or relational statement– Control flow statement :
• Conditional expression (if, then, else, elseif)• Looping expression• Case statement• Test statement
– File I/O statement (read for input or echo for output)
Shell programming (3) – shell variable• Declaration and assignment within one statement• Content is manipulated as string• Content can be
– single, double quoted for string– backslash quoted for single character with special meaning , eg. $ ? & ‘ ’ “
” ( ) [ ] | < > `
• Accessed by ${VAR_NAME} or $VAR_NAME• Eg. VAR1=abc• Eg. VAR2=‘this is a variable’• Eg. VAR3=“today is `date` and VAR1 is $VAR1”• Eg. VAR4=“\$VAR1”• Read and run file var.ksh (downloadable from Joe’s web site ->
tutorial page)
var.ksh4 “echo VARn” statements not displayed
Shell programming (4) – arithmetic
• Two methods : make use of either utility expr or bc
• expr – support arithmetic of 2 integers only– + - * / %
• bc– Support floating point arithmetic of expression– Not include %
• Read and run file arith.ksh (downloadable from Joe’s web site ->tutorial page)
Arithmetic of integers only
Arithmetic of real numbers
Echo is used to print “…..” to monitor
Shell programming (5) – relational• [ expr1 -eq expr2 ]
– Is equal to
• [ expr1 -ne expr2 ]– Is not equal to
• [ expr1 -lt expr2 ]– Is less than
• [ expr1 -le expr2 ]– Is less than or equal to
• [ expr1 -gt expr2 ]– Is greater than
• [ expr1 -ge expr2 ]– Is greater than or equal to
At least one or At least one or more spacemore space
Shell programming (6) – conditional
if condition1
then
command_block1
elif condition2
command_block2
else
command_block3
fi
These are all logical conditions for flow control statements
Read is used to input from keyboard and assigned value to variable “INPUT_VAR”
Shell programming (7) –looping
• syntax :
while condition
do
command_block
done• Read and run file loop.ksh (downloadable from
Joe’s web site -> tutorial page)
This is logical condition for while loop
Read input from keyboard and assigned value to variable “VAR”
Echo is used to print “…..” to monitor
Shell programming (8) – case
• syntax :
case string in
pattern1) command_block1 ;;
pattern2) command_block2 ;;
patterni) command_blocki ;;
*) command_block ;;
esac• Read and run file case.ksh (downloadable from
Joe’s web site ->tutorial page)
If value $VAR is one of these values, corresponding command(s) will be executed
If value $VAR is NOT one of those listed values, command(s) in *) will be executed
C programming (1) – compilation
• Function of c compilation : – check for syntax error in source code– source code (*.c) -> object code (*.o) ->
executable machine code
• C compilation model :– 4 components – preprocessor, compiler,
assembler, linker (for detail, refer to http://www.cs.cf.ac.uk/Dave/C/section2_4_4.html)
• Available c compiler : – gcc (better, more ansi-compatible)
C programming (2) – compilation
• How to compile :• 1. For single source file :
– compile to executable code :•gcc *.c (a.out is default filename for
executable code)
– compile up to object code file but no linking :•gcc –c *.c (*.o will be output)
– compile to executable code but specify filename for executable code :•gcc –o out_exe *.c (out_exe will be
executable code)
C programming (2) – compilation
• 2. For multiple source files :– make utility + makefile (or Makefile) file– makefile file syntax :
•Maintarget: requirements1 instructions1 target1: requirements2 instructions2 target2: requirements3 instructions3
• Try make with makefile and c programs from the hand out of today’s lecture
References
• Ken SteubeUNIX Bourne Shell Scripting
• http://www.esscc.uq.edu.au/~ksteube/Bshell/
• Norman Matloff ,• Unix Shell Scripts http://heather.cs.ucdavis.edu/~matloff/UnixAndC/Unix/CShellII.html
• Mendel Cooper – Advanced Bash-Scripting Guide – http://tldp.org/LDP/abs/html/
• Phil– Internet Radio to Podcast with Shell Tools" in the September, 2005 issue of
LINUX JOURNAL, http://www.linuxjournal.com/article/8171