Computer Science Lectures/Computer Networks - UW

Lecture 1.3 ~ 1.5: Introduction, Protocols and Layering

오렌지색 귤 2022. 11. 13. 19:33
반응형
 

1-3 Network Components

Copyright © Pearson Education, Inc. or its affiliate(s). All Rights Reserved.

mediaplayer.pearsoncmg.com

 

Parts of a Network

- app과 연결된 노드 = host

- 단순히 노드간에 메세지를 넘겨주는 노드 = router

- 노드간의 연결 단위 = link

- 하나의 host에 여러 app이 연결? => multiplexing

 

 

Component Names

 

 

Types of Links

- Full-duplex : Bidirectional

          - same frequency, same time에 양방향 통신 가능

- Half-duplex : Bidirectional

          - same frequency, same time에 양방향 통신 불가하고 한방향으로만 가능

- Simplex : Unidirectional

 

 

Wireless Links

- Message is broadcast

          - Received by all nodes in range

          - Not a good fit with our model

AP에 보내는 응답도 broadcast이므로 커넥션이 복잡하다

 

- So, Often show logical links

           - Not all possible connectivity

같은 시간 같은 frequency에서는 서로 간섭한다

 

 

Example of Networks

 

 

Network names by scale

 

 

Internetworks

- An internetwork, or internet, is what you get when you join networks together

           - Just another network

- The Internet (captial "I") is the internet we all use

 

 

Network Boundaries

app은 네트워크의 범주는 아니다
ISP는 app과 host는 포함하지 않는다
Cloud도 ISP이다

 

 

Key Interfaces

- Between (1) apps and network, and (2) network components

         - More formal treatment later on

 

1. Network-application interfaces define how apps use the network

          - Sockets are widely used in practice

 

2. Network-network interfaces define how nodes work together

          - Traceroute(경로 추적) can peek in the network

 

 

 

 

 

1-4 Sockets

Copyright © Pearson Education, Inc. or its affiliate(s). All Rights Reserved.

mediaplayer.pearsoncmg.com

 

Network-Application Interface

- Defines how apps use the network

          - Lets apps talk to each other via hosts; hides the details of the network

 

 

Motivating Application

Simple client-server setup

 

Socket API

- Simple abstraction to use the network

        - The network service API used to write all Internet applications

        - Part of all major OSes and languages

- Supports two kings of network services

        - Streams : reliably send a stream of bytes

        - Datagrams : unreliably send separate messages (Ignore for now)

 

 

- Sockets let apps attach to the local network at different ports

- 하나의 호스트에 연결된 다수의 앱마다 소켓이 생성된다

- 소켓은 각기 다른 포트 번호를 가지며, 해당 포트 번호가 있기에 multiplexing이 가능하다

 

 

socket APIs

 

Sequence of Socket Connection

* = call blocks

- Blocking call 이후에는 다음 요청이 올 때까지 기다리게 된다

 

 

Client Program (outline)

 

Server Program (outline)

- accept() ~ send()가 loop인 이유는 다른 client로부터의 연결을 기다려야 하기 때문이다

 

 

 

 

1-5 Traceroute

Copyright © Pearson Education, Inc. or its affiliate(s). All Rights Reserved.

mediaplayer.pearsoncmg.com

 

Network Service API Hides Details

- Apps talk to other apps with no real idea of what is inside the network

          - This is good! But curious...

 

 

Traceroute

- Widely used command-line tool to let hosts peek inside the network

          - On all OSes (tracert on Windows)

          - Uses a network-network interface (IP) in ways we will explain later

 

 

- Probes(조사) successive hops to find network path

- 새로운 노드에 도착할 때마다 도착한 노드에 대한 정보를 송신자에게 보내는 방식이다

 

 

 

실습

Q. * * *의 의미는?

A. 최대 ttl보다 응답이 지연되어 측정할 수 없음을 나타내는 기호. 자세한 내용은 아래 참고

 

what does "***" mean when traceroute

this is the result of my traceroute traceroute 211.140.5.120 1 141.1.31.2 (111.1.31.2) 0.397 ms 0.380 ms 0.366 ms 2 141.1.28.38 (111.1.28.38) 3.999 ms 3.971 ms 3.982 ms 3 142.11.124.1...

serverfault.com

 

반응형