2024 인하대학교 컴퓨터공학과 전공수업
- 💖 What is a Network?
- 네트워크란?
- Node란?
- Link란?
- 💖 What is a Protocol?
- Protocol이란 무엇인가요?
- Protocol의 3요소
-
- Syntax
-
- Semantics
-
- Timing
-
- 💖 What is a Standard?
- Standard란 무엇인가요?
- Standard Development Organization(SDO)
- IETF
- De facto standards
- 💖 Protocol Layering Basics
- Protocol Layering이 탄생한 배경
- Protocol Set이란 무엇인가요?
- Basic Terms in Protocol Layering
- Service
- Protocol
- Interface
- Definitions of Protocols
- Protocol Graph
- Protocol Graph란 무엇인가요?
- Protocol Encapsulation
- Protocol Encapsulation이란?
- Protocol Encapsulation과 Decapsulation
- Reference Model이란 무엇인가요?
- OSI Reference Model이란 무엇인가요?
- ⚡ Layer 1: Physical Layer
- ⚡ Layer2: Data link layer
- Service
- MAC이란?
- ⚡ Layer3: Network layer
- Fragmentation
- Packet scheduling
- ⚡ Layer4: Transport Layer
- ⚡ Layer5: Session Layer
- ⚡ Layer6: Presentation Layer
- ⚡ Layer7: Application Layer
- 💖 OSI Refernece Model
- Intermediate Node
- Protocol Data Units(PDU))
- PDU의 탄생 배경
- Protocol layering 복습
- Protocol layering은 왜 필요한가요?
- TCP/IP Protocol Suite
- Multiplexing이란 무엇인가요?
- Multiplexing and Demultiplexing
- Multiplex를 구현하는 방법 2가지
- 💖 Curcuit Switching
- Circuit Switching이란?
- Curcuit Switching을 구현하는 방법 2가지
- ⚡️ TDM(Time Division Multiplexing)
- ⚡️ FDM(Frequency Division Multiplexing)
- 💖 Packet Switching
- Packet Switching이란?
- Circuit Switching VS Packet Switching
- Internet에서 Packet Switching의 과정
- 💖 Packet Scheduling
- Packet Scheduling in Gateway
- Queueing and Packet Loss
- Queuing in Internet
- 💖 Packet delay
- Nodal Delay란?
- Nodal Delay를 구하는 공식
- ⚡ Transmission delay
- bps란 무엇인가요?
- ⚡️ propagation delay
- ⚡️ Nodal processing delay
- ⚡️ Queueing delay
- Throughput이란 무엇인가요?
- Throughput 구하는 공식
- Bottleneck link
- Round Trip Time(RTT)
- BDP
- 💖 Ethernet
- Ethernet의 방식 2가지
- ⚡ Bus 방식이란?
- ⚡ Switched 방식이란?
- 💖 Wireless LANs
- Rate Adaptation
- 💖 References
- 💖 CSMA/CD
- CSMA/CD의 탄생 배경
- CSMA/CD란?
- 💖 Wide Area Networks (WANs)
- WAN 기술들
- ⚡ Cable-based access
- frequency division multiplexing (FDM)
- Hybrid Fiber Coax
- ⚡ Digital subscriber line (DSL)
- ⚡ Cellular networks
- 💖 Connecting Devices
- 우리가 배울 Connecting Devices들
- ⚡ Repeater(Hub)란?
- Repeater의 문제점
- ⚡ Bridge(2 layer switch)란?
- Destination Address Learning
- Destinattion Address Learning 과정
- Transparent한 Switch란?
- ⚡ Router
- 💖 TCP와 UDP
- TCP VS UDP
- ⚡ TCP Protocol
- TCP Protocol의 특징
- TCP Protocol에서 제공하는 기능 3가지
- Connection-oriented Multiplexing
- Multiplexing
- Demultiplexing
- UDP Protocol이란?
- UDP Protocol의 특징
- UDP Protocl의 장점
- TCP/UDP segment format
- Connectionless demultiplexing
- Multiplexing
- Demultiplexing
- 💖 References
- 💖 Connection
- Transport Layer Basics
- Connection-oriented demultiplexing
- 네트워크에서의 Connection
- Connectionless
- Connection-Oriented
- 💖 TCP Header and Encapsulation
- TCP Header의 구성
- ⚡ ACK
- ⚡ application data(acknowledgement number)
- ⚡ checksum
- ⚡ options
- ⚡ headlen
- ⚡ sequence number
- ⚡ RST, SYN, FIN
- ⚡ receive window
- ⚡ C, E
- ⚡Urg data pointer
- Pseudoheader
- TCP Header의 구성
- 💖 References
- 💖 Connection Establishment
- 💖 Three-Way Handshake
- TCP Packets
- ⚡ SYN
- ⚡ ACK
- ⚡ seq
- ⚡ ack
- ⚡ rwnd
- Three-Way Handshake의 연결 수립
- 일반적인 상황에서 TCP의 데이터 Communication
- Connection Termination
- TCP Packets
- 💖 References
- TCP Connection에서의 예외 케이스
- ⚡ Simultaneous Open
- TCP Hole Punching
- ⚡ TCP Half-Close
- ⚡ Simultaneous Close
- 💖 ISN(Initial Sequence Number)
- ISN
- 💖 Timeout of Connection Establishment
- Timeout의 도입 배경
- 💖 TCP Options
- Options
- 중요한 Options
- ⚡ MSS
- ⚡ WSOPT
- ⚡ SACK
- ⚡ TSOPT
- Path MTU Discovery with TCP (Optional)
- 💖 TCP State Diagram
- State Transition Diagram
- 3-way handshake 과정
- 둘 중 하나가 Close를 호출했을 때
- 2MSL
- State Transition Diagram
- 💖 Reset Segment
- Reset segment가 사용되는 경우
- 💖 ARQ
- ARQ란 무엇인가요?
- ARQ가 필요한 시나리오
- ARQ는 어떻게 구현할 수 있나요?
- ⚡ Stop-and-wait
- ⚡ Go-back-N(GBN)
- ⚡ Selective-Repeat
- 💖 TCP Sliding Window
- Sliding Window의 도입 배경
- Byte-oriented, Sender-side Sliding Window Protocol
- 그림을 이해해보자…
- 시나리오 1: Time out
- Sliding Window Size의 결정
- 💖 TCP Flow Control
- 도입 배경
- Flow Control이란?
- TCP의 Flow Control
- Producer-Consumer 관점에서의 TCP Flow Control 예시
- Packet 관점에서의 TCP Flow Control 예시
- 💖 Issues regarding Variable Window Size
- Silly Window Syndrome란?
- 어떤 상황에 발생하나요?
- Nagle’s algorithm
- 구현 방법
- Clark’s solution
- 💖 TCP Error Control
- TCP의 Error Control 기법
- Sender의 error control
- 언제 발생하나요?
- ACK Generation 규칙들
- Error Control Scenario
- Normal Operation
- Lost Segment
- Lost ACK corrected by resending a segment
- Fast Retransmission
- Lost ACK
- Retransmission Timeout 설정
- Naïve Round-Trip Time (RTT) Estimation
- SmoothedRTT Estimation
- RTT Variation Estimation
- TCP’s RTO Computation Algorithm
- 💖 Referneces
- 💖 TCP Congestion Control
- Congestion이란?
- Congestion control
- Congestion을 예측하는 방법
- Congestion 발생 시나리오
- case 1. output link buffer가 infinite할 때
- case 2. finite buffer
- Case 3. duplication까지 발생했을 때
- 💖 Congestion Control 방법
- End-end congestion control
- Network-assisted congestion control
- AIMD algorithm
- AIMD에서 sending rate를 조절하는 방법
- ⚡ Additive Increase
- ⚡ Multiplicative Decrease
- TCP slow start
- 등장한 배경
- 구현 방법
- AIMD와 slow start의 결합
- 각각의 사용 목적
- TCP Fairness
- Fairness란?
- TCP에서의 faireness
- Q. TCP는 fair한가요?
- 💖 다양한 network에서의 Fairness
- UDP에서의 Fairness
- Parallel TCP Connection에서의 Fairness
- 예시
- 💖 References
- 💖 TCP Timers
- TCP Timers
- TCP Timer의 종류
- ⚡ Keepalive Timer
- ⚡ Persistance Timer
- Persistance Timer의 등장 배경
- 발생 시나리오
- 💖 Address and Name in BSD Sockets API
- Internet에서 Address와 Name
- Name
- Address
- IPv4 Address
- network byte order vs host byte order
- Resolution
- Internet에서 Address와 Name
- 💖 References
- 💖 Netwrok layer란?
- Network layer는 어떤 역할을 하나요?
- Router의 역할
- 💖 Netwrok layer의 기능
- Network layer의 2가지 기능
- ⚡ forwarding
- ⚡ routing
- 💖 Network layer 내부의 두 plane
- Plane
- ⚡ Data Plane
- ⚡ Control Plane
- Software-Defined Networking (SDN) control plane
- Plane
- 💖 Network service model
- Internet service model
- best effort service
- Internet service model
- 💖 Internet Protocol (IP) Version 4
- Internet Protocol의 service
- ⚡ Unreliable
- ⚡ Connectionless
- Internet Protocol의 service
- 💖 IP Header
- IPv4의 Datagram
- ⚡ version
- ⚡ IHL
- ⚡ Total Length
- ⚡ Identification
- ⚡ TTL(Time-to-live)
- ⚡ Protocol
- ⚡ Header Checksum
- IPv6의 Datagram
- ⚡ Next Header
- IPv4의 Datagram
- 💖 IPv4 Options
- ⚡ No operation
- ⚡ Record route
- ⚡ Pointer
- ⚡ Source Route Options
- Strict Source Route Options
- Loose Source Route Options
- ⚡ Timestamp Option
- 💖 IP Addressing
- IPv4의 주소 notation
- IPv6의 주소 notation
- IPv6의 Simplification
- 💖 Classful Addressing
- Class 별 Network ID
- Class D: Multicase address
- class E
- class 별 Default Mask
- Class 별 Network ID
- 💖 IP Header
- IPv4의 Datagram
- ⚡ version
- ⚡ IHL
- ⚡ Total Length
- ⚡ Identification
- ⚡ TTL(Time-to-live)
- ⚡ Protocol
- ⚡ Header Checksum
- IPv6의 Datagram
- ⚡ Next Header
- IPv4의 Datagram
- 💖 Network Address Translation
- 필요한 배경
- 변환 방식
- NAT 방식의 장단점
- 장점
- 단점
- 💖 MAC Address
- MAC 주소란?
- MAC 주소의 예시
- Layer 관점에서의 MAC 주소
- MAC 주소란?
- 💖 ARP
- ARP란?
- ARP의 동작 방식
- ARP cache
- 예시
- Gratuitous ARP
- 예시
- 왜 필요한가요?
- Routing to Another Subnet
- 💖 DHCP
- Dynamic Host Configuration Protocol
- DHCP의 과정
- 💖 Internet Control Message Protocol (ICMP)
- ICMP
- ICMP의 format
- 기본 메시지 포맷
- ICMP의 datafield
- ICMP message types
- ⚡ Time Exceeded
- ⚡ ICMP redirect message
- ⚡ Traceroute
- Stopping criteria
- 💖 Multiprotocol label switching (MPLS)
- MPLS
- circuit switching과 packet switching
- Virtual Circuit
- MPLS가 사용되는 시나리오
- MPLS signaling
- MPLS
- 💖 HTTP와 Web
- HTTP 개요
- server와 client
- HTTP의 layer
- stateless
- HTTP 개요
- 💖 Persistent HTTP
- HTTP의 두가지 종류
- ⚡ Non-persistent HTTP
- Non-persistent HTTP 동작
- ⚡ Persistent HTTP(HTTP/1.1)
- Persistent HTTP의 등장 배경
- Persistent HTTP
- Persistent HTTP with pipelining
- 💖 HTTP request message
- Reuest message header
- ⚡ Host
- ⚡ User-Agent
- ⚡ Accept-Encoding
- ⚡ Connection
- Request message format
- Reuest message header
- 💖 HTTP response message
- response message 예시
- response status codes
- 💖 Cookies
- 예시
- tracking a user’s browsing behavior
- 예시
- 💖 Domain Name Service
- Top-Level Domain
- Internet Assigned Numbers Authority
- Delegation record
- DNS Zone
- DNS Records
- 기본 포맷
- Type=A
- Type=NS
- Type=CNAME
- Type=MX
- DNS Protocol
- 💖 References
- 💖 IP Routing Protocols
- IP Routing Protocol
- Graph abstraction
- Routing algorithms의 분류
- ⚡ Global VS Decentralized
- ⚡ Static VS Dynamic
- Autonomous Symstems(AS)
- 💖 Intra-AS routing과 Inter-AS routing
- ⚡ Intra-AS Routing Protocols
- 💛 Routing Information Protocol(RIP)
- 💛 Enhanced Interior Gateway Routing Protocol(EIGRP)
- 💛 Open Shortest Path First(OSPF)
- ⚡ Inter-AS routing
- 💛 BGP
- ⚡ Intra-AS Routing Protocols
- 💖 Routing Algorithms
- ⚡ link state algorithm
- 예시
- Discussion
- Dijkstra’s algorithm: oscillations possible
- ⚡ Distance vector
- Bellman-Ford Equation
- Good news travels fast
- ⚡ link state algorithm
- 💖 References