CS

평소 모호하게 이해하고 있던 패킷의 이동 경로에 대해 이번 스터디에서 함께 이야기해보기로 했다. 대체 데이터가 어떤 방식으로, 어디를 통해, 어떤 모습으로 이동하기에 우리가 여러 외국 사이트들도 문제 없이 빠르게 볼 수 있는 것인지! 알아보자. 네트워크에서 패킷의 이동 과정을 OSI 7계층을 응용하여 전체적으로 이해해 보았다. 패킷의 이동 과정 패킷의 이동과정은 전반적으로 이렇다. Source host 가 나의 컴퓨터라고 하고, Destination host는 내 친구의 컴퓨터, 또는 www.google.com이라고 가정하자. 이 때 www.google.com은 DNS를 통해 IP 주소를 찾아야 한다는 것을 제외하고는 통신 방법은 동일하다. [DNS 에 대한 개념 먼저 살펴보기] A 컴퓨터(source ..
시간이 없는 관계로 문제 풀이로 대체한다..!!!! 😭😭 1. 라우터와 스위치의 유사점과 차이점을 설명하시오. 라우터 스위치 유사점 포워딩 테이블이 존재한다. 차이점 IP 주소로 포워딩하는 네트워크 계층 MAC 주소로 포워딩하는 링크 계층 IP와 MAC 주소를 가진다. 주소 없이 투명하다. 네트워크 관리자의 관리가 필요하다. self-learning으로 이루어진다. 계층구조 평면 구조 2. 스위치의 4가지 기능을 나열하고 각각에 대해 설명하시오. self-learning 1. 스위치 테이블은 초기에 비어있다. 2. 인터페이스로 수신(A->A')한 각 프레임에 대해 스위치는 프레임의 출발지 주소 필드에 있는 MAC 주소 / 프레임이 도착한 인터페이스 / 현재 시간 을 저장한다. 3. 일정시간(aging t..
본 내용은 Computer Networking: A Top-down Approach 를 읽고 공부한 내용입니다. 목차 1. 개요 2. 라우팅 알고리즘 컨트롤러로 가는 중요한 메시지들은 다음과 같다. flow-removed(플로우 제거) : 컨트롤러에게 어떤 플로우 테이블 엔트리가 시간이 만료되었거나 상태 수정 메시지를 수신한 결과로 삭제되었음을 알린다. packet-in(패킷 전달): 패킷을 컨트롤러에 보낸다. port-status(포트 상태): 포트의 상태변화 알린다. 4. SDN 컨트롤러 시나리오
본 내용은 Computer Networking: A Top-down Approach 를 읽고 공부한 내용입니다. 목차 1. 네트워크 계층 개요 1) 포워딩과 라우팅 2) 네트워크 서비스 모델 3) connection, connection-less service 2. VC와 datagram networks 1) VC 2) datagram networks 3) VC vs datagram networks 3. 라우터 내부에는 무엇이 있을까? 1) 라우터 내부 알아보기 2) 입력포트 3) 스위칭 구조 4) 출력포트 4. 인터넷 프로토콜(IP): IPv4, 주소 지정, IPv6 등 1) IPv4 데이터그램 형식 2) IPv4 데이터그램 단편화 3) IPv4 주소체계 4) DHCP 5) 네트워크 주소 변환(NAT)..
· CS/OS
본 내용은 Operating System Concepts 8th Edition 번역본 책을 읽고 공부한 내용입니다. 목차 1. 파일이란? 1) 파일에 대한 개념 2) 파일이 User에게 주는 효과 3) 파일 연산 4) 파일 접근 방식 5) file과 directory의 공통점과 차이점? 3. Organization of Files 1) 이전에 사용하던 방식 2) multilevel indexed allocation 3. Data Structures for File 1) UNIX FILE SYSTEM 2) 단일/이중/삼중 간접 인덱스 3) Directory 찾아가기 4. 디스크 1) Disk Head Scheduling 2) Redundant Array Of Inexpensive disk 1. 파일이란? ..
· CS/OS
본 내용은 Operating System Concepts 8th Edition 번역본 책을 읽고 공부한 내용입니다. 목차 1. 메모리 관리의 개념 및 목표 1) Classifying information stored in memory 2) segments of a process 3) 주소의 할당 4) 논리 vs 물리 주소 공간 2. Swapping 3. Linking 4. Loading 5. Running the program 1) Static Memory Allocation 2) Dynamic Memory Allocation 6. Multiprogramming - Goals in Sharing the Memory Space 1) Static Relocation 2) Dynamic Relocation 7..
· CS/OS
본 내용은 Operating System Concepts 8th Edition 번역본 책을 읽고 공부한 내용입니다. 목차 1. Deadlock 필요조건들 1) 상호배제(mutual exclusion) 2) 점유하며 대기(hold-and-wait) 3) 비선점(no preemption) 4) 순환대기(circular wait) 2. 자원 할당 그래프(Resource-Allocation Graph) 1) RAG 구성요소 2) RAG - 사이클 기본 3) RAG - 사이클 심화 4) RAG - 순환적 연결 knot 3. 교착상태 예방(Deadlock Prevention) 4가지 필요조건 중에서 최소한 하나가 성립하지 않도록 하는 방법들 4. 교착상태 회피(Deadlock Avoidance) 1) 자원당 인스턴..
· CS/OS
본 내용은 Operating System Concepts 8th Edition 번역본 책을 읽고 공부한 내용입니다. 목차 1. CPU 스케줄링 1) 목표 2) CPU-I/O burst cycle 3) CPU 스케줄링을 위한 Decision Making - 선점/비선점 스케줄링 4) CPU 스케줄링을 위한 Decision Making - Dispatcher 2. 스케줄링 알고리즘 1) 스케줄링 기준 2) FCFS 3) SJF 4) Round-Robin Scheduling 5) SRT 6) Priority Scheduling 7) Multilevel Queue Scheduling 8) Multilevel Feedback Queue Scheduling 1. CPU 스케줄링 1. CPU 스케줄링의 목표 다중프로..
본 내용은 Computer Networking: A Top-down Approach 를 읽고 공부한 내용입니다. 목차 1. 혼잡제어의 원인과 비용 1) 시나리오1: 두 개의 송신자와 무한 버퍼를 가지는 하나의 라우터 2) 시나리오2: 두 개의 송신자, 유한 버퍼를 가지는 하나의 라우터 3) 시나리오 3: 네 개의 송신자와 유한 버퍼를 가지는 라우터, 그리고 멀티홉 경로 2. 혼잡제어에 대한 접근법 1) 종단간의 혼잡제어 2) 네트워크 지원 혼잡제어 3. 혼잡제어의 여러 사례 1) ATM ABR 2) RM 4. TCP 혼잡제어 1) TCP의 알고리즘 2) AIMD 3) Slow Start 4) TimeOut 5) Fast Recovery 5. TCP 공정성 1. 혼잡제어의 원인과 비용 1.1 시나리오1: ..
본 내용은 Computer Networking: A Top-down Approach 를 읽고 공부한 내용입니다. TCP/UDP에 이어 이번에는 RDT(reliable data transfer)에 대해 알아보자! 과정이 조금 복잡할 수 있다 목차 1. rdt의 원리 2. rdt 1.0: 오류 없는 채널에서의 신뢰적인 데이터 전송 1) 송신/수신 방법 - event, action 3. rdt 2.0: 비트 오류가 있는 채널상에서의 신뢰적 데이터 전송 1) 송신/수신 방법 - ACK, NAK 2) rdt 2.0의 치명적 결점 3) rdt 2.1: sequence number로 구분하여 전송 4) rdt 2.2: sequence number로 구분하여 전송+a NAK-free protocol 4. rdt 3.0..
오늘은 TCP와 UDP에 대해 알아보자! TCP UDP는 TCP/IP 프로토콜 모델에서 전송 계층에 해당한다. 전송(트랜스포트) 계층은 응용 프로그램과 네트워크 사이에서 중재하는 역할을 맡고 있으며, 애플리케이션 프로세스들 간의 논리적 통신(logical communication)을 제공한다. UDP(사용자 데이터그램 프로토콜) 비연결형, 신뢰성 없는 전송 프로토콜 UDP는 최소한의 오버헤드만 사용하는 매우 간단한 프로토콜이다. 작은 메시지를 보내거나 또한 신뢰성을 고려하지 않는 프로세스는 UDP를 사용할 수 있다. UDP를 사용하여 작은 메시지를 전송하는 것이 TCP를 사용하는 경우보다 송신자와 수신자 간의 상호 대화가 훨씬 적다. handshaking이 일어나지 않으며, congestion contr..
본 내용은 Computer Networking: A Top-down Approach 를 읽고 공부한 내용입니다. 1. P2P 1) P2P란? 2) P2P 파일 분배 3) P2P 구조의 확장성 4) 비트토렌토 5) 비트토렌토의 구조 및 소통방식 2. Video Streaming과 CDN(content distribution networks) 1) Multimedia: video 2) Streaming stored video 3) DASH 4) CDN 1. P2P 1.1 P2P란? 항상 켜져있는 기반 구조 서버들에 최소한으로 의존하는 구조이다. 누구나 서버/클라이언트가 될 수 있고, 자유롭게 데이터를 주고받는다. 1.2 P2P 파일분배 클라이언트-서버 파일분배에서, 서버는 파일 복사본을 각 피어들에게 보내야..
1. DNS 1) DNS란? 2) DNS가 제공하는 서비스 3) 분산 시스템 4) 계층적으로 IP주소를 찾는 과정 5) DNS 질의(name resolution) 6) DNS 캐싱 7) DNS 레코드 8) DNS 메시지 9) DNS 데이터베이스에 레코드 삽입 10) DNS 공격 1. DNS 1.1 DNS란? 사람은 주민등록번호로 개개인을 식별할 수 있다. 이와 비슷하게 호스트는 DNS를 통해서 식별할 수 있다. 호스트를 식별하는 다양한 방법이 있다. ex. hostname(cnn.com, www.yahoo.com), IP 주소 (121.7.106) (1) DNS 서버들의 계층구조로 구현된 분산 데이터베이스이고, (2) 호스트가 분산 데이터베이스로 질의하도록 허락하는 애플리케이션 계층 프로토콜이다. 1.2..
본 내용은 Computer Networking: A Top-down Approach 를 읽고 공부한 내용입니다. 목차 1. FTP 1) FTP란? 2) FTP와 HTTP 비교 3) FTP 명령어 - 참고 4) Active Mode vs Passive Mode 2. electronic mail 1) SMTP 2) POP3 3) IMAP 1. FTP 1.1 FTP란? FTP는 HTTP와 맥락이 비슷한 프로토콜이라고 생각하면 된다. 모두 인터넷에서 데이터를 전송하기 위한 규약이지만, FTP는 파일 전송을 위한 표준 프로토콜이다. 1.2 FTP와 HTTP 비교 1. 둘 모두 TCP에서 동작한다. 2. 응답 메시지가 존재한다(HTTP에서의 200, 404 응답). 하지만 형식은 다르다 1. FTP는 일반적으로 파..
본 내용은 Computer Networking: A Top-down Approach 를 읽고 공부한 내용입니다. 목차 1. 네트워크 어플리케이션의 원리 1) P2P와 Client-Server 2) Socket 3) 애플리케이션이 이용가능한 트랜스포트 서비스 (4가지 요소) 2. 웹과 HTTP 1) HTTP 개요 2) 비연속 연결과 지속 연결 3) HTTP 메시지 포맷 4) 사용자와 서버 간의 상호작용 : 쿠키 5) 웹 캐싱 6) 조건부 GET 1. 네트워크 어플리케이션의 원리 1.1 Client-Server와 P2P 쉽게 예시로 설명하자면, Client-Server는 교수님과 우리의 관계, P2P는 팀플할 때 팀원 간 관계로 설명할 수 있다. 교수님은 우리의 질문을 항상 받을 준비를 하고 계신다. Cli..
본 내용은 Computer Networking: A Top-down Approach 를 읽고 공부한 내용입니다. 목차 1. 인터넷이란 무엇인가? 1) 구성요소로 본 인터넷 2) 서비스로 본 인터넷 3) 프로토콜이란 무엇인가? 2. 네트워크의 가장자리 1) 클라이언트와 서버 프로그램 2) 접속 네트워크 3) 물리 매체 3. 네트워크 코어 1) 회선 교환과 패킷 교환 2) Routing과 Forwarding 에필로그 저번에 카페에 갔다가 넘 귀여운 코알라를 발견했다! 귀여워.. 1. 인터넷이란 무엇인가? 인터넷은 한 문장으로 간결한 정의를 하기 쉽지 않다. 인터넷이 제공하는 서비스, 하드웨어, 소프트웨어 등 모든 요소에 이르기까지 인터넷은 너무나 복잡하다. 따라서 아래에서 두 가지 방법으로 설명한다. 1️⃣..
· CS/OS
본 내용은 Operating System Concepts 8th Edition 번역본 책을 읽고 공부한 내용입니다. 목차 1. 동기화 문제 1) 생산자 소비자 문제 2) Too much milk 문제 3) 메모리 적재와 연산 도중의 문제 2. 동기화 문제의 해결책 1) 동기화 개념 4가지 2) 멀티스레드 동기화 기법 해결 방법 3) 메모리 적재와 연산 도중의 문제 3. 임계 영역 문제의 해결책 1) 싱글스레드 환경에서의 해결책 2) n개의 프로세스가 있는 멀티스레드 시스템에서 임계 영역 문제를 해결하기 위해 충족해야 하는 세 가지 요구조건 3) 메모리 적재와 연산 도중의 문제 4. 임계 영역에 대한 소프트웨어 기반 해결책, 알고리즘 1) 피터슨의 해결안(Peterson's solution) 5. 세마포 ..
· CS/OS
본 내용은 Operating System Concepts 8th Edition 번역본 책을 읽고 공부한 내용입니다. 목차 1. 다중 스레드 1) 배경 2) 개념 3) 장점 2. 사용자 레벨 스레드와 커널 레벨 스레드 3.Process 100개에 thread 한 개 있는 모델 vs Process 1개에 thread 100개 있는 모델 1) 메모리 영역의 차이 2) 각 방식의 장점과 단점 비교 3) PCB와 TCB 개수 비교 1. 다중 스레드 1. 배경 앞에서 우리는 다중프로그래밍에 대한 개념을 언급했다. 다중 프로그래밍은 쉽게 말해 아래 그림처럼 프로세스 중 아무도 놀지 못하도록 프로세스들을 조정한다는 개념이다. 하나의 응용 프로그램이 여러 개의 비슷한 작업들을 실행해야 하는 상황이 여럿 존재한다. 예를 ..
· CS/OS
본 내용은 Operating System Concepts 8th Edition 번역본 책을 읽고 공부한 내용입니다. 목차 1. 협력적인 프로세스 모델 1) 공유메모리 시스템 2) 메세지 전달 시스템 2. CLIENT-SERVER 통신 1) 소켓 2) RPC(원격 프로시저 호출) 1. 협력적인 프로세스 모델 프로세스가 시스템에서 실행 중인 다른 프로세스들에게 영향을 주거나 받는다면 이는 협력적인 프로세스들이라고 말한다. 프로세스간 통신에는 기본적으로 공유 메모리 와 메시지 전달의 두 가지 모델이 있다. 이에 대해 알아보자! 1. 공유 메모리 시스템 일반적으로 운영체제는 한 프로세스가 다른 프로세스의 메모리에 접근하는 것을 금지한다는 것을 기억하자! 그런데도 메모리를 공유하고 싶다면, 프로세스 둘 모두 서로..
· CS/OS
본 내용은 Operating System Concepts 8th Edition 번역본 책을 읽고 공부한 내용입니다. 목차 1. UNIX Process Model에 대한 이해 2. 프로세스 상태 전이 3. Process Creation/Operation in UNIX 참고 문헌 1. UNIX Process Model 아래 내용은 2에 해당하는 프로세스 상태전이를 참고하면서 보면 더 도움이 됩니다. 하나하나 차근차근 잘 외워보자(?) 1. 프로세스가 사용자 모드에서 실행 중(System Call에 의해 커널모드로 전환될 수 있다.) 2. 프로세스가 커널 모드에서 실행 중 - Running 3. 프로세스가 실행되고 있지는 않지만 커널이 예약하는 즉시 실행할 준비가 되어 있습니다. (커널이 스케줄하면 바로 실행..
jeonyoungseo
'CS' 카테고리의 글 목록