본문 바로가기

전체 글

(28)
System call Mode switch : User → Kernel그렇다면, Ch1에서 본 Memory protection에서 user에서 kernel모드로는 어떻게 전환될까?다음과 같은 3가지 방법이 존재한다.Interrupts미리 저장한 kernel의 code이다.Externel hardware에 의해서 Trigger된다(ex timer and I/O)Exceptions(=traps)주로 software의 unexpected program behavior or malicious behavior에 의해 Trgger된다System callsexception mechanism에 의해서 구현된다 ( exception 발생하면 이를 해결하기 위해 syscall 호출)process에 의해 requested되며, process를 ..
Protection OS란 무엇인가?-Hardware을 application에게 유용한 form으로 만들어주는 kernel에서 작동하는 software이다.OS의 main role 3가지Design abstractions to use hardwareProtection & IsolationSharing resourcesDesign abstraction to use hardware중요하지 않은 detail을 무시함으로써 이해하기 쉽도록 만든 processProvide protection, Isolation예전에는, OS kernel과 application이 같은 주소에서 동작해 App이 kernel instruction 읽기 및 수정이 가능하였다.main()을 call하면 OS에게 통제권이 돌아오지 않았기에, pdf에선 “OS..
Ch3-5) Connection-oriented transport: TCP 이제 TCP에 대해서 자세히 알아볼 시간이다.TCP OverviewOne-to-one point한명의 Sender와 Receiver 사이에서 데이터가 교환Reliable , in-order Byte stream패킷 단위로 데이터를 구분하지 않고 Byte 단위로 구분데이터를 끊어서 메시지로 처리하는지는 application layer 담당임.full duplex data양방향 통신 지원 : TCP 연결을 통해 양쪽에서 동시에 데이터 전송 가능MSS : maximum segment size 존재 (전송되는 segment의 최대 크기를 제한하는 term)Cumulative ACKs누적 ACK를 보냄 : 그 전의 모든 데이터는 수신 완료Pipeliningcongestion / flow control set wi..
Ch3-4) Principles of reliable data transfer 우선, Reliable data transfer의 목적을 살펴보자. Application을 사용하는 사용자 입장에선, 데이터가 한방향으로만 전송되고, 이미 데이터가 안정적으로 전송될것이라는 사실을 알고 있다.그러나, 설계하는 입장에서 reliable data transfer을 만들기 위해선, “양방향”의 노력이 필요하다. → 위와 같은 사진처럼, Unreliable channel을 통해 안전하게 데이터를 전송하는 과정을 추상화 하는 것이 바로 Reliable data transfer service의 목적이다.Architecture of Reliable data transfer: RDT 우선, 우리는 다음과 같은 4가지의 함수를 통해 rdt에 대해서 살펴볼 것이다.rdt_send() : Applicatio..
Ch3-3) Connectionless Transport: UDP UDP는 transport layer protocol이 할 수 있는 최소한의 기능들만 가지고 동작→ “best effort” service로, UDP segment가 lost / 다른 app에 전달돼도 알빠노UDP sender,reciever 간에 handshaking 과정도 없음⇒ 그럼 이런거 왜씀?no connection establish : Simple !바로 간단하기 떄문이다.UDP 하에서 application process가 data를 UDP에 전달하자마자 UDP는 data를 segment로 만들고, 바로 네트워크 계층에 전달연결 설정을 위한 delay가 존재하지 않음또한 Header size도 작음TCP는 헤더로 20바이트, UDP는 8바이트no congestion control원하는 만큼 빠..
Ch3-2) Multiplexing and Demultiplexing Multiplexing and demultiplexingMultiplexing in sendertransport header을 추가해 multiple socket에 data를 전달하는 과정Demultiplexing in recievertransport header info를 참고해 올바른 socket에 segment를 전달하는 과정     How multiplexing work : Conectionless multiplexing 우선, Host는 IP datagram을 받음각 Datagram은 source IP address와, destination IP address를 보유하고 있음각 Datagram은 개당 하나의 segment carry이때 각 segment가 source port #와 destina..
CH3-1) Transport Layer Service Transport layer은, 서로 다른 hosts들의 application processes들의 logical communication을 제공한다.Network Layer은, 서로 다른 hosts의 Logical communication을 제공한다.  그리고, 중요한 점은 Transport layer은 end-system 사이에서 작동한다는 것이다.Sender: “Segment”라고 불리는 단위로 메시지를 쪼개어 network layer로 전송한다.Segments는 네트워크 layer packet(Datagram)안에 캡슐화되어 전달됨이때 네트워크 라우터는 datagram field에 대해서 동작즉, datagram 안에 캡슐화된 Transport layer segment field는 검사 x    ..
Ch2-6) Video streaming and content distribution networks 현재, 비디오 스트리밍 traffic은 ISP traffic의 80%를 차지할 정도로, major consumer of Internet이다.→ 그렇다면, 우리는 어떻게 10억이 넘는 유저를 관리할 수 있을까? 단순히 하나의 Mega-server 형태는 아닐 것이다.→ 또한, 각 유저마다 Network에 대해 각각 다른 capability를 보유하고 있을 것인데, 이 간극을 어떻게 해결했을까?바로 distributed, application-level infrastructure을 이용하는 것이다 !우선, Video의 Streaming 원리에 대해서 살펴보자.Multimedia : Video비디오는, 초당 24~30개의 image가 연속적으로 나타나는 이미지의 연속이다.압축되지 않은 디지털 이미지는, 픽셀 ..