CS 72

[네트워크] 5. Link layer - Link layer services / ARP / MAC protocols

Reference - Computer Networking: a Top Down Approach Link layer는 물리적으로 연결된 두 디바이스 사이의 네트워크를 관리한다. 인접한 node로 패킷을 안전하게 전달할 책임을 가진다. Link(Data-link) layer services - Terminology hosts and routers : nodes communication path : links (wired / wirelss / LAN) link layer packet : frame Link layer를 비유하자면 서울에서 도쿄로 여행을 간다고 할 때 탑승객을 datagram, 이동경로가 communication link, 교통수단은 link layer protocol, 여행 에이전트가 rout..

CS/네트워크 2023.12.04

[네트워크] 4. Network layer (4) - AS / OSPF / BGP

Reference - Computer Networking: a Top Down Approach Network layer는 end to end로 패킷을 전송할 때, 경로를 설정하고 라우터 관점에서 어떻게 효율적으로 전달할지를 결정하는 역할을 한다. Inter-AS, Intra-AS 지금까지는 모든 라우터가 동일하고 네트워크가 flat하다고 가정했지만, 현실은 그렇지 않다. 따라서 이로인해 발생하는 여러 문제들을 자율시스템(=AS=Autonomous System)으로 라우터들을 조직화하여 해결한다. 각 AS는 동일한 관리 하에 있는 라우터 그룹으로 구성되며, 전 세계적으로 고유한 AS 번호로 식별된다. 같은 AS 안의 라우터들은 동일한 라우팅 알고리즘을 사용하고, neighbor에 대한 정보를 갖고 있다. ..

CS/네트워크 2023.12.04

[네트워크] 4. Network layer (3) - Routing Protocols

Reference - Computer Networking: a Top Down Approach Network layer는 end to end로 패킷을 전송할 때, 경로를 설정하고 라우터 관점에서 어떻게 효율적으로 전달할지를 결정하는 역할을 한다. Routing Protocol Routing Protocol의 목적은 good path를 찾는 것이다. 여기서 good path라 함은 cost / fastest / least congested 등을 최적화하는 path가 될 수 있다. Shortest Path Routing problem의 경우 모든 경로 상에서 destination까지의 sum of cost가 가장 작은 값을 찾는다. 이때의 cost는 정의하기 나름인데, link length, speed, p..

CS/네트워크 2023.12.04

[네트워크] 4. Network layer (2) - IP / DHCP / NAT

Reference - Computer Networking: a Top Down Approach Network layer는 end to end로 패킷을 전송할 때, 경로를 설정하고 라우터 관점에서 어떻게 효율적으로 전달할지를 결정하는 역할을 한다. IP(Internet Protocol) - Network layer의 protocol 3가지 routing protocol - forwarding table과 밀접한 관련이 있으며, path를 어떻게 할지를 정하고 router에 전달해준다. IP protocol - 주소를 관리하는 기능 ICMP protocol - error reporting 및 라우터에 signal이 필요할 때 signaling을 해준다. - IP datagram format IP versio..

CS/네트워크 2023.12.04

[네트워크] 4. Network layer (1) - Forwarding and Routing / Switching

Reference - Computer Networking: a Top Down Approach Network layer는 end to end로 패킷을 전송할 때, 경로를 설정하고 라우터 관점에서 어떻게 효율적으로 전달할지를 결정하는 역할을 한다. Network layer: Data plane & Control plane 라우터는 application layer, transport layer를 지원하지 않으므로 network layer 상위 계층은 존재하지 않는다. network layer에는 하나의 라우터 안에서 어느 라우터로 패킷을 전달할지를 결정하는 forwarding과 전체 network-wide에서 전체 경로를 결정하는 routing, 두가지 function이 있다. forwarding은 몇 ns..

CS/네트워크 2023.12.03

[네트워크] 3. Transport layer (2) - Congestion control in TCP

Reference - Computer Networking: a Top Down Approach Transport layer는 Application의 end to end (source와 destination)을 연결시켜주는 역할을 하는 layer다. Congestion Control Congestion control이란 예측에 기반해 네트워크 자체의 혼잡을 막기 위해 ACK 속도에 따라 전송 속도를 조절하는 것이다. 이때 송신 측이 데이터를 보내는 크기인 Congestion Window(cwnd)를 조절하여 혼잡을 제어한다. loss가 발생하지 않으면 cwnd를 조금씩 늘려 전송량을 늘리게끔 고안되었다. Congestion Collapse는 network traffic이 쌓이다가 한 부분이 bottlene..

CS/네트워크 2023.12.03

[데이터베이스] 6. More SQL: Complex queries, triggers, views, and schema modification (chapter 7)

Reference - Fundamentals of Database Systems 7th edition More complex SQL Retrieval Queries 복잡한 형태의 조회 - Nested queries (중첩 질의), joined tables, outer joins 복잡한 형태의 조회를 알아보기 전에 NULL에 대해 더 자세히 알아보겠다. NULL에는 3가지 종류가 있다. -> 알려지지 않은 값, 이용할 수 없는 값, 적용할 수 없는 값이다. NULL 값이 있을 때 comparison은 AND의 경우 TRUE and NULL -> NULL, FALSE and NULL -> FALSE다. OR의 경우 TRUE or NULL -> TRUE, FALSE or NULL -> NULL이다. IS NU..

CS/Database 2023.12.02

[데이터베이스] 5. Basic SQL (chapter 6)

Reference - Fundamentals of Database Systems 7th edition SQL SQL은 관계형 데이터베이스에서 데이터를 처리하는 선언적 언어다. 따라서 절차적인 Python, C와 달리 선언만 하면 되기에 상대적으로 쉬울 것이다. Table = relation, row = tuple, column = attribute다. SQL schema는 DB의 이름이다. schema 안엔 DB의 권한이나 설명이 포함되어 있다. Example - Create Schema CREATE SCHEMA COMPANY AUTHORIZATION 'Jsmith'; - Create table CREATE TABLE COMPANY.EMPLOYEE (or 그냥 EMPLOYEE) - View 사용자가 보기..

CS/Database 2023.12.02

[데이터베이스] 4. Relational Data Model and Relationship Database Constraints (Chapter 5)

Reference - Fundamentals of Database Systems 7th edition Relational Model Concepts - Terms Relation에 관한 model concept. relation은 table of values와 유사하다. tuple은 relation의 행을 말하며, 각 행은 real-world의 entity (혹은 relationship)을 의미한다. tuple은 unique한 key가 존재한다.때로 row-ids나 table row의 sequential number가 키가 되는 경우가 있는데, 이를 artifical key 혹은 surrogate key라 한다. domain은 데이터 타입에 대한 정의를 말한다. (ex.phone numbers are t..

CS/Database 2023.12.02
loading