본문 바로가기
book report

Computer Networking - A Top Down Approach (COSE342 컴퓨터 네트워크)

by 계발자 망고 2021. 9. 6.

Chapter 1. Computer Networks and the Internet

1.1 what is the internet ?

1.1.1 a nuts and bolts description

  • Computer network that interconnects billions of computing devices throughout the world.
  • Those devices are called hosts or end systems
  • End systems are connected together by a network of communication links and packet switches.
  • Packets are sent through the network from source end system to the destination end system
  • Packet takes a packet arriving on one of its incoming communication links and forwards thatpacket on one of its outgoing communication links
  • The sequence of communication links and packet switches are called route or path.
  • Internet Service Providers (ISPs) provide a variety of network access to the end system
  • Components of Internet run protocols that control the sending and recieving of information within the Internet
  • Internet standards are developed by IETF and called RFCs.

1.1.2 a services description

  • An infrastructure that provides service to applications.
  • End systems attached to the Internet provide a socket interface that specifies how a program running on one end system asks the internet infrastructure to deliver data to a specific destination program.

1.1.3 what is a protocol 

  • A protocol defines the format and the order of messages exchanged between two or more communicating entities, as well as the actions taken on the transmission and/or receipt of a message or other event.

1.2 the network edge

  • End systems sit at the edge of the internet.
  • End systems are also referred to as hosts
  • Hosts are divided into two categories: clients and servers
  • Servers are often in data centers

1.2.1 access networks

  • Access network means the network that physically connects an end system to the first router(edge router) on a path from the end system to any other distant end system.
  • Access networks includes home access(DSL, Cable, FTTH, Dial Up, Satellite), Access in the Enterprise(Ethernet and WiFi), Wide Area wireless access(3G and LTE).

1.2.2 physical media

  • For each transmitter-receiver pair, the bit is sent by propagating electromagnetic waves or optical pulses across a physical medium.
  • Physical media includes twisted-pair copper wire, coaxial cable, multimode fiber-optic cable, terrestrial radio spectrum, and satellite radio spectrum.

1.3 the network core

  • There is a mesh of packet switches and links that interconnects the internet's end system at the network core.

1.3.1 packet switching

  • In a network application, end system exchange messages with each other.
  • To send a messages from src to dst, the src breaks long messages into smaller chunks of data known as packets.
  • Bewteen src and dst, each packet travels through communication links and packet switches
  • There are two dominant types, router and link-layer switch in packet switches.
  • Most packet switches use store-and-forward transmission at the inputs to the links.
  • Store-and-forward transmission means tha the packet switch must receive the entire packet before it can begin tot transmit the efirst bit of the packet onto the outbound link.
  • It takes N*L/R delay time for N links each or rate R when L is bit length of a packet.
  • A packet switch has an output buffer(queue) which stores packets that the router is about to send into that links.
  • If the buffer is completely full with other packets waiting for transmission, packet loss would occur - either the arriving packet or one of the already-queued packets will be dropped.
  • Packet forwarding means how the router determine which link it should forward the packet onto.
  • IP address what every end system has has a hierarchical structure and router examines a portion of the packet's destination to forward the packet to an adjacent router.
  • Each router has a forwarding table that maps destination addresses to that router's outbound links
  • Internet has a number of special routing protocols that are used to automatically set the forwarding tables.

1.3.2 circuit switching

  • There are two fundamental approaches to moving data through a network of links and switches: circuit switching and packet switching
  • In circuit switching, the resources needed along a path to provide for communication between the end systems are reserved for the duration of the communication session between the end systems.
  • Traditional telephone networks are examples of circuit-switched networks.
  • Before the sender can send the information, the network must establish a connection between the sender and the receiver which is called circuit.
  • It's easiser to guarantee service quality and no packet loss in circuit switching
  • the trend has certainly been in the direction of packet switching than circuit switching

1.4 delay, loss, and throughput in packet-switched networks

  • Throughput means the amount of data per second that can be transferred
  • Computer networks necessarily constrain throughput between end systems, introduce delays between end systems, and can actually lose packets

1.4.1 overview of delay in packet-switched networks

  • Packet traveling nodes suffers from several types of delays at each node along the path
  • There are nodal processing delay, queuing delay, transmission delay, propagation delay, and etc
  • processing delay : the time required to examine the packet's header, determine where to direct the packet and check for bit-level errors. nearly deterministic in L2/L3/L4 switches but variable in L7 switch.
  • queuing delay : time for waiting to be be transmitted onto the link. depend on the number of the number of earlier-arriving packets that are queued and waiting for transmission onto the link. largely inpredictable
  • transmission delay : the amount of time required to push all of the packet's bits into the link. when packet has L bits and transmission rate is R bits/sec, transmission delay is L/R. Increases in multi-hop. (store-and-forward)
  • propagation delay : the time required to propagate bits from the beginning of the link to next router after  being pushed into the link. propagation speed depends on physical medium of the link(2x10^8m/s in cooper cable & optical fiber). a propagation delay is d/s when d is the distance between routers and s is propagation speed of link.
  • nodal delay = processing delay + queuing delay + transmission delay + propagation delay

1.4.2 queuing delay and packet loss

  • Unlike other three delays, the queuing delay can vary from packet to packet
  • Packet arriving at an empty queue has no queuing delay but packet arriving in bursts and periodically has significant average queuing delay
  • Queue capacity is finite, so packet can be lost because a router will drop the packet when the queue is full
  • This above is called packet loss

1.4.3 end-to-end delay

  • When there are N - 1 routers bewteen the src to dst,
    delay end to end = N * ( processing delay + queuing delay + transmission delay + propagation delay )
  • Traceroute is a simple program that can run in any Internet host. - Visit traceroute.org and test the route of packet to dst

1.4.4 throughput in computer networks

  • Throughput means rate at which bits transferred between sender/receiver.
  • Instantaneous throughput means rate at given point in time
  • Average throughput means rate over longer period of time
  • Throughput is constrained by the slowest of transmission rate of all links in route. it is called rate of the bottleneck link.
  • In practice, transmission rate of a edge network is often bottleneck

1.5 protocol layers and their service models

  • People developed the notion of "layer" for better understanding on the network functions

1.5.1 layered architecture

  • A layered architecture allows us to discuss a well-defined, specific part of a large and complex system.
  • A protocol layer can be implemented in software, in hardware, or in a combination of the two
  • Protocol layering has conceptual and structural advantages
  • The protocol of the various layers are called the protocol stack
  • The Internet protocol stack consists of five layers : the physical, link, network, transport, and application layers
  • Application layer : where network applications and their application-layer protocols reside. a packet at the application layer is called message. HTTP, SMTP, FTP, DNS protocols are included here
  • Transport layer : this layer transports application-layer messages between application endpoints. there are two transport protocols, TCP(connection-oriented) and UDP(connectionless) in this layer. packet at the transport layer is called segment.
  • Network layer : network layer is responsible for moving network-layer packets known as datagrams from one host to another. Internet's network layer includes the IP protocol which defines the fields in the datagram as well as how the end systems and routers act on these fields. This layer also contains routing protocols that determine the routes that datagrams take between sources and destinations.
  • Link layer : To move packet from one node (host or router) to the next node in the route, the network layer relies on the services of the link layer. This layer includes Ethernet, 802.111(WiFi), Bluetooth protocol. A packet at this layer is called frame.
  • Physical layer : The job of the physical layer is to move the individual bits within the frame from one node to the next.
  • During encapsulation, each layer builds a protocol data unit (PDU) by adding a header and optionally a trailer, both of which contain control information to the PDU from the layer above.
    출처-wikipedia

1.6 networks under attack

1.7 history of computer networking and the internet

  • 1962-1972 (Early Packet-Switching Principles): kleinrock-queueing theory shows effectiveness of packet-switching, ARPAnet conceived by ARPA
  • 1972-1980 (Internetworking, new and proprietary nets): ALOHAnet satellite network in Hawaii, Cerf and Kahn - architecture for interconnecting networks, Ethernet at Xerox PARC
  • Cerf and Kahn's internetworking principles(minimalism, autonomy - no internal changes required to interconnect networks, best effort service model, stateless routers, decentralized control) define today's Internet architecture
  • 1980-1990 (new protocols, a proliferation of network) : deployment of TCP/IP, smtp e-mail protocol defined, DNS defined for name-to-IP-address translation, ftp, TCP congestion control
  • 1990-2000's (commercialization, the Web, new apps) : ARPAnet decommissioned, Web appeared (hypertext, HTML, HTTP), more killer apps
  • 2005-present : ~5B devices attached to Internet, aggressive deployment of broadbanad access, increasing ubiquity, emergence of sns, running own services in "cloud"

2. application layer

2.1 principles of network applications

- There are many network applications : e-mail, web, text messaging, remote login, P2P file sharing, multi-user games, streaming stored video, voice over IP, social networking, etc

- When we develop network application, we should write programs that run on end systems and communicate over network and there is no need to write software for network-core devices.

2.1.1 network application architectures

- Client-Server architecture : There is always-on host, called the server which services requests from many other hosts, called clients. Server has permanent IP address and often use data centers for scaling. Clients may be intermittently connected, have dynamic IP addresses and do not communicate directly with another client.

- P2P architecture : There is no always-on server and arbitrary end systems which is called peer directly communicate. peers request service from other peers, and provide service in return to other peers. Here we can have compelling feature "self scalability" that new peers bring new service capacity, as well as new service demands. Peers are intermittently connected and change IP addresses. And Here we face challenges of security, performance, and reliability due to their highly decentralized structure.

2.1.2 processes communicating

- Process means program running within a host.

- Processes on two different end systems communicate with each other by exchanging messages across the computer network.

- In client-server architecture, process that initiates communication is client process and process that waits to be contacted is server process.

- Application with P2P architectures have both client and sever processes

- A process sends messages into, and receives messages from, the network through a software interface called a socket.

- socket is an interface for application programming which is between application layer and the transport layer within a host

- To recieve messages, a process must have an identifier which is 32-bit IP address.

- To Identify the receiving process within recieving host, port number is allocated.

- For example, HTTP server has port # 80, mail server has port # 25.

2.1.3 transport services available to applications

- Many networks, including the Internet, provide more than one transport-layer protocol.

- We can broadly classify the possible services along four dimensions : data transfer, throughput, timing, and security.

- There are two types of protocol : Open protocols (Defined in RFCs, Allows for interoperability, HTTP, SMTP), Proprietary protocols (e.g., Skype)

- Apps may need different types of transport services :

- Data integrity : Some apps require 100% reliable data transfer but other apps can tolerate some loss.

- Timing : Some apps (Internet telephony, interactive games) require low delay to be "effective"

- Throughput : some apps (multimedia) require minimum amount of throughput to be "effective" but other apps make use of whatever throughput they get.

2.1.4 Transport services provided by the internet

application data loss throughput time sensitive
file transfer no loss elastic no
e-mail no loss elastic no
web documents no loss elastic no
real-time audio/vedio loss-tolerant audio: 5kbps - 1Mbps
vedio: 10kbps - 5Mbps
yes, 100's msec
stored audio/vedio loss-tolerant same as above yes, few sec
interactive games loss-tolerant few kbps up yes, 100's msec
text messaging no loss elastic yes and no

- There are dominant two Internet transport protocols : TCP, UDP

- TCP : Reliable transport, Flow control, Congestion control, Does not provide (timing, minimum throughput guarantee, security), connection-oriented

- UDP : Unreliable data transfer, Does not provide (reliability, flow control, congestion control, timing, throughput guarantee, security, connection setup)

application application layer protocol underlying transport protocol
e-mail SMTP TCP
remote terminal access Telnet TCP
web HTTP TCP
file transfer FTP TCP
streaming multimedia HTTP, RTP TCP or UDP
internet telephony SIP, RTP, proprietary TCP or UDP

2.1.5 application-layer protocols

- Application layer protocol defines : types of emssages exchanged, message syntax, message semantics, rules.

- Types of messages : request messages and response messages

- Message syntax : the fields in the message and how the fields are delineated

- Message semantics : the meaning of the information in the fields

- Rules : determining when and how a process sends a messages and responds to messages

2.2 the Web and HTTP

- Before 1970s-1980s : Internet used mainly by researchers and academics.

- Late 1980s and early 1990s : initial proposal for the web by berners-lee in 1989

- 1990s : Growth of the Web, first web browser and server and first version of mosaic browser

2.2.1 overview of HTTP

- A Web page consists of objects.

- An object can be HTML file, JPEG image, Java applet, audio file, ect.

- Each object is addressable by a URL, e.g.,

- URL consists of host name and path name.

출처-wikipedia

- URI (Uniform Resource Identifier) : denotes a resource independent of its location or value, a pointer to a black box that accepts request methods. Identifier representing the contents of the book

- URL : location of the book

- URN : globally unique name, like an ISBN # for a book

출처-researchgate

- HTTP defines how Web clients request Web pages from Web servers and how servers transfer Web pages to clients.

- Web client : browser that requests, receives, and displays web objects

- Web server : Web server sends objects in response to requests

- HTTP uses TCP as its underlying transport protocol 

  (1) clients initiates TCP connection to server ; port 80

  (2) Server accepts TCP connection from client

  (3) HTTP msg exchanged between browser and web server.

  (4) TCP connection closed

- HTTP is "stateless" which means that server maintains no information about past client requests.

2.2.2 Non-Persistent and Persistent Connection

- In non-persistent connections, each request/response pair is sent over a separate TCP connection.

- In persistent connection, all of the  requests and their corresponding responses are sent over the same TCP connection.

- Although HTTP uses persistent connections in its default mode, HTTP clients and servers can be configured to use non-persistent connections instead.

- Round-trip time(RTT) means the time it takes for a small packet to traver from client to server and then back to the client which includes packet propagation delays, packet-queuing delays, and packet-processing delays.

- In non-persistent HTTP response takes 2*RTT+file transmission time. 

- non- persistent HTTP has two shortcomings that new TCP connection must be established and maintained for each requested obect and there is additional delay to open new TCP connection.

- With HTTP 1.1 persistent connections, the server leaves the TCP connection open after sending a response. so there is as little as one rtt for all the referenced objects.

+ HTTP Server Architecture

- There is single threaded web server and multi threaded web server.

- In multi threaded web server, main thread focuses only on the handling the request, and data transfer is handled by worker threads.

- If web server uses thread pool, worker threads can be reused without being destroyed.

2.2.3 HTTP Message Format

- There are two types of HTTP messages, request msg and reponse msg.

- A HTTP message is written in ordinary ASCII text which is human-readable and each line is followed by a carriage return and a line feed.

- Method field can take on several different values including GET, POST, HEAD, PUT, and DELETE.

- The entity body is empty with the GET method, but is used with the POST method.

- With POST method, web page often includes form input and input is uploaded to server in entity body.

- With URL method, Input is uploaded in URL field of request line and uses GET method.

- HEAD method asks server to leave requested object out of response.

- PUT method is used by applications that need to upload objects to web servers.

- DELETE method allows a user, or an application, to delete an object on a web server.

- A response message has three section: an initial status line, six header lines, and then the entity body.

- The status code and associated phrase indicate the result of the request.

2.2.4 User-Server Interaction: Cookies

- HTTP server is stateless.

- But It is often desirable for a web site to identify users to restrict user access or to serve content as a function of the user identity. So the HTTP uses cookies.

- cookie technology has four components : 

  (1) cookie header  line of response message

  (2) cookie header line in next HTTP request msg

  (3) cookie file kept on user's host, managed by user's browser

  (4) back-end database at web site

출처-Computer networking a top down approach

- Cookies can be used for authorization, shopping carts, recommendations, user session state

2.2.5 Web Caching

- A web cache(proxy server) is a network entity that satisfies HTTP requests on the behalf of an origin web server.

- The web cache has its own disk storage and keeps copies of recently requested objects in this storage.

- When browser sends all HTTP requests to cache, if object in cache it returns objects. If not, cache requests the object from origin server, then returns it to client.

- Web caching can reduce response time for client request and traffic on access link.

2.3 Electronic Mail in the Internet

  • Three major components of the e-mail : user agent, mail server, and the Simple Mail Transfer Protocol (SMTP)
  • User agent allow user to read, reply to, forward, save, and compose messages. (e.g. Microsoft outlook and Apple mail)
  • In Mail server, each recipient has a mailbox, and it contains incoming messages for user.
  • Mail server holds the message in a message queue and attempts to transfer the message later.
  • SMTP is the principal application-layer protocol for Internet electronic mail.
  • SMTP uses the reliable data transfer service of TCP to transfer service of TCP to transfer mail from the sender's mail server to the recipient's mail server.
  • SMTP has two sides: a client side, which executes on the sender's mail server, and a server side, which executes on the recipient's mail server.

2.3.1 SMTP

  • SMTP is defined in RFC 5321
  • SMTP is much older than HTTP, and it restrics the body of all mail messages to simple 7-bit ASCII.
  • SMTP Uses TCP (persistent connection) to reliably transfer email message from client to server, port 25.
  • There are three phases of transfer
    (1) Handshaking
    (2) Transfer of messages
    (3) Closure
  • Client issues command in ASCII text and server issues replies to each command with each reply having a reply code and some optional explanation (status code and phrase)

2.3.2 Comparison with HTTP

  • Both protocols are used to transfer files from one host to another and use persistent connections.
  • There are 3 differences
    (1) HTTP is mainly a pull protocol. SMTP is primarily a push prototcol
    (2) SMTP requires each message, including the body of each message, to be in 7-bit ASCII format. HTTP data does not impose this restriction.
    (3) HTTP encapsulates each object in its own HTTP response message. SMTP places all of the message's objects into one message (multiple objects sent in multi-part message).

2.3.3 Mail message formats

  • A header containing peripheral information precedes the body of the message itself.
  • After the message header, a blank line follows.
  • Then the message body follows

2.3.4 Mail Access Protocols

  • SMTP has been designed for pushing e-mail from one host to another.
  • Recipient's user agent can't use SMTP to obtainn the messages in their mail server because obtaining the messages is a pull operation, whereas SMTP is a push protocol.
  • A mail access protocol, such as POP3, IMAP, HTTP, is used to transfer mail from the recipient's mail server to the recipient's user agent
    (1) POP: authorization, download - POP3 is stateless across sessions, POP3 has "download-and-delete" and "download-and-keep" mode
    (2) IMAP: Internet mail access protocol: more features including manipulation of stored messages on server - keeps all messages in one place at server(keeps user ID across sessions)
    (3) HTTP: Gmail, Hotmail, Yahoo mail, etc.

2.4 DNS-The Internet's Directory Service

  • Internet host are identified by IP addresses and hostname(e.g., www.google.com)

2.4.1 Service provided by DNS

  • The main task of the Internet's DNS is to translate hostname to IP adresses.
  • DNS is a distributed database implemented in hierarchy of many name servers.
  • DNS is employed by other application layer protocols
  • DNS located at the edge of the network.
  • There are many services that DNS provides
    (1) Translation between hostname and IP address
    (2) Host aliasing - canonical, alias names
    (3) Mail server aliasing
    (4) Load distribution - Allow replicated web servers (many IP addresses correspond to one name)

2.4.2 Overview of How DNS Works

  • In centralized design DNS, The problems include:
    (1) A single point of failure
    (2) Traffic volume
    (3) Slow Response -- due to distant centralized database
    (4) Maintenance
  • In order to deal with the issue of scale, the DNS uses a large number of servers, organized in a hierarchical fashion and distributed around the world.
  • There are three classes of DNS servers
    (1) root DNS servers (provide ip address of the TDL server)
        - contacted by local name server who can not resolve a name. 13 logical root name servers worldwide
    (2) top level domain DNS servers (provide ip address for authoritative DNS servers)
        - responsible for com, org, net, edu, aero, jobs, museums, and all top level country domains, e.g.:kr,uk,jp
    (3) authoritative DNS servers
        - organization's own DNS server, providing authoritative hostname to IP mappings for organization's named      hosts to IP mappings for organization's named hosts
        - can be maintained by organization or service provider
  • To have IP for www.amazon.com;
    (1) Client queries the root server to find .com DNS server
    (2) Client queries .com DNS server to get amazon.com DNS server
    (3) Client queries amazon.com DNS server to get IP address for www.amazon.com
  • There is another type of DNS server called the local DNS server.
    (1) A local DNS server doesn't strictly belong to hierarchy
    (2) Each ISP (residential ISP, company, university) has one
    (3) also called "default name server"
    (4) When a host makes a DNS query, the query is sent to its local DNS server
    (5) It has local cache of recent name-to-address translation pairs
    (6) If a cache miss occurs, it acts as proxy, and forwards the query into the DNS hierarchy
  • DNS name resolution example - Iterated query
  • DNS name resolution example - Recursive query
    not widely used. Heavy load at upper levels of hierarchy
  • Once name server learns mapping, it caches mapping.
  • Cache entries timeout after some time (TTL)
  • TLD servers typically cached in local name servers
  • If a name host changes its IP address, this fact may not be known Internet-wide until all TTLs expire

2.4.3 DNS Records and Messages

  • The DNS servers that together implement the DNS distributed database store resource records (RRs), including RRs that provide hostname-to-IP address mappings.
  • A resource record is a four-tuple that contains the following fields:
    (Name, Value, Type, TTL)
    The meaning of Name and Value depend on Type
  • There are query and reply messages, both with same message format
    Identification is 16 bit # for query, reply to query uses same #
    Flags : query or reply, recursion desired, recursion available, reply is authoritative
  • A registrar is a commercial entity that verifies the uniqueness of the domain name, enters the domain name into the DNS database and collects a small fee from domain owner for its service.

2.5 Peer-to-Peer File Distribution

  • In clientserver file distribution, the server must send a copy of the file to each of the peers—
    placing an enormous burden on the server and consuming a large amount of server
    bandwidth. 
  • In P2P file distribution, each peer can redistribute any portion of the file it has received to any other peers, thereby assisting the server in the distribution
    process.
  • The distribution time is the time it takes to get a copy of the file to all N peers.
  • In clientserver file distribution,
  • In p2p file distribution,
  • Thus, applications with the P2P architecture can be self-scaling
  • In BitTorrent lingo, the collection of all peers participating in the distribution of a particular file is
    called a torrent(group of peers exchanging chunks of a file).
  • Peers in a torrent download equal-size chunks of the file from one another, with a typical chunk size of 256 kbytes. 
  • Each torrent has an infrastructure node called a tracker which tracks peers participating in torrent.
  • Recieving peer requests missing chunks from other peers, rarest first.
  • Recieving peer caculate every 10 secs the 4 peers sending at highest rate and those are said to be unchoked.
  • every 30 secs recieving peer optimistically unchoke random peer to find better partner.

2.6 Video Streaming and Content Distribution Networks

  • Vedio traffic is major consumer of Internet bandwidth.

2.6.1 Internet video

  • A vedio is a sequence of images, typically being displayed at a constant rate, an uncompressed digitally encoded image consists of an array of pixels, with each pixel encoded into a number of bits to represent luminance and color.
  • Encoding means using redundancy within and between images to decrease # bits used to encode image.

2.6.2 HTTP Streaming and DASH

  • In DASH(Dynamic, Adaptive, Streaming over HTTP) the video is encoded into several different versions, with each version having a different bit rate and, correspondingly, a different quality level.
    - server
    (1) divides video file into multiple chunks
    (2) each chunk stored, encoded at different rates
    (3) manifest file: provides URLs for different chunks
    - client
    (1) periodically measures server-to-client bandwidth
    (2) consulting manifest, requests one chunk at a time - choose maximum coding rate sustainable given current bandwidth, can choose different coding rates at different points in time
  • The HTTP server also has a manifest file, which provides a URL for each version along with its bit rate.
  • In DASH, clients determines when to request chunk, what encoding rate, where to request chunk.

2.6.3 Content Distribution Networks

  • Streaming all traffic to locations all over the world while providing continuous playout and high interactivity is clearly a challenging task.
  • For this, There can be single large mega-server. But there are some problems with this approach
    (1) single point of failure
    (2) point of network congestion
    (3) long path to distant clients
    (4) multiple copies of video sent over outgoing link
    -> this solution doesn't scale
  • So the next solution is to store/serve multiple copies of videos at multiple geographically distributed sites (CDN)

2.7 Socket Programming: Creating Network Applications

2.7.1 Socket Programming with UDP

  • UDP has no connection between client & server
  • No handshaking before sending data
  • Sender explicitly attaches IP destination address and port number to each packet
  • Receiver extracts sender IP address and port number from received packet
  • Transmitted data may be lost or received out of order
  • UDP provides unreliable transfer of groups of bytes "datagrams" between client and server

2.7.2 Socket Programming with TCP

  • TCP provide reliable, in-order byte-stream transfer "pipe" between client and server
  • Server process must first be running, and client must contact server.
  • Socket must have created socket that welcomes client's contact
  • Client contact server by creating tcp socket, specifying IP address, port number of server process.
  • Server creates new TCP socket when contacted by client to communicate with that particular client.

 

 

to be continued during semester

 

반응형

'book report' 카테고리의 다른 글

[Realtime Rendering] 3. Transformation  (0) 2021.07.26

댓글