전체 글 99

3-2. System calls

중앙대학교 3-2 리눅스 응용 설계 (손용석 교수님) 과목 정리입니다. Processor Modes The OS must restrict what a user process can do What instructions can execute What portions of the address space are accessible Supervisor mode (Kernel Mode) instruction set의 어떤 instruction이든 실행 가능 processor 중지, mode bit 변경, I/O 초기화 system의 어떤 memory location이든 접근 가능 OS address space의 code & data User Mode Restricted capabilities privileged..

ZeroPage 지금 그때 회고록

올해 지금 그때는 ZeroPage 행사 중에서 가장 많이 기대했던 행사였다. 지금 그때는 작년에 회장단으로서 온라인으로 개최한 경험밖에 없어서 과연 내가 회장이 되기 전에는 어떤 행사였을까? 에 대한 궁금증이 컸다. 올해 회장단도 지금 그때를 고생해서 준비한 것 같았고, 이번에 바빠서 많이 도와주지 못해 미안한 마음이 컸다. 결론적으로 말하자면 기대했던 행사였던 만큼 좋은 행사였다. 나도 졸업생이 되어서 이 행사에 꼭 오고 싶다는 생각이 들만큼! 재학생으로는 느끼지 못하는 이야기들, 선배들이 생각하는 것들, 여러 가지 생각들을 엿볼 수 있어서 좋았다. (그렇지만 무엇보다 좋았던 것은 대면 행사라는 것) 나도 졸업생이 되면 그런 생각들을 할 수 있을까에 대해서도 생각해보게 된 것 같다. 3학년이 되니 생각..

10. 슬라이딩 윈도우 구현

슬라이딩 윈도우 작동 과정 순서 번호 공간 (Sequence Number Space) 순서번호는 오류제어에서 필수 → 헤더에 저장해서 보낸다. 프레임 헤더의 필드는 한정된 공간 (많이 사용하면 overhead가 증가한다.) → 결국 순서 번호는 순환되며 사용된다. 순서 번호 공간: 가능한 순서 번호 구간 Ex. 4-bit 필드 ⇒ [0..15] 순서 번호 필드는 얼마로 잡아야 안전할까? 주어진 순서 번호 공간에서 최대 outstanding 프레임, 즉 송신자 기준 WindowSize는 얼마까지 늘릴 수 있을까? 순서 번호 공간은 현재 전송중인 프레임의 수보다 커야 한다. 어떤 프레임이 오류 및 재전송의 대상이 될 지 모르므로, outstanding frame 각각은 서로 다른 SeqNum을 갖고 있어야 ..

9. 슬라이딩 윈도우 (Sliding-Window)

슬라이딩 윈도우 (Sliding Window) 이디어: 송신자가 ACK를 받기 전에 여러 개의 프레임을 전송할 수 있도록 한다 → 파이프가 꽉 차게 된다. ACK를 받지 않은 상태에서 보내지는 프레임 (outstanding frame)이 복수개로 늘어난다. 그 수는 window size에 맞게 제한된다. outstanding frame: 현재 전송이 진행중인 frame = 언제든지 오류 복구가 필요한 frame 모두 오류 제어 대상이며, 순서 번호가 필요하다. (누가 ACK를 보냈는지 구분하기 위해) stop&wait는 sliding window의 window size가 1인 경우이다. 각각의 프레임에 대해서는 ARQ, 즉 Ack / timeout & 재전송을 수행한다. 효율 높은 오류 제어가 가능하다...

8. 신뢰성 있는 전송 (Stop-and-Wait)

개요 오류에 의해 변질된 프레임의 복구 오류 수정 코드 (Error Correction Codes: ECC) 순방향 수정 (Forward Error Correction: FEC) → 수신자가 수정하는 코드 자동 반복 요청 (Automatic Repeat reQuest: ARQ) : 재전송 ACK와 타임아웃 (Acknowledgements and Timeouts) 역방향 수정 (Backward Error Correction) 오류 중에는 프레임 자체가 성립이 안 되는 framing error 도 존재한다. 이 경우에는 수신 쪽이 frame 수신 여부를 인식하지 못하는 frame loss이다. 오류 수정 코드 (Error Correcting Codes) Forward Error Correction (FEC)..

7. 오류 검출

오류검출 데이터 링크 층의 중요한 기능이다. 오류검출까지는 하드웨어가 처리할 수 있다. 오류 복구/처리/재전송은 소프트웨어가 처리한다. 오류 검출 코드 (Error Detecting Code) : EDC 데이터 영역 안에 오류가 있는지 없는지 알아내기 위한 부가 데이터 (overhead) 수신자가 알아내야 하므로 비용 없이는 할 수 없는 작업이다. Ex. parity (맨 끝의 parity bit) 크기 면에서 EDC는 data보다 작아야 한다. 오류가 없는 경우 EDC는 단순 overhead가 되기 때문에 작아야 의미가 있다. 효율 면에서 오류 검출율이 높아야 한다. EDC가 너무 작으면 검출율이 낮아진다. 비용 면에서 f() 연산에서 시간이 적게 소모되어야 한다. 고속 통신에서 병목 지점이 될 수도 ..

6. 프레이밍 (Framing)

프레이밍(Framing) : 개요 패킷 네트워크에서는 데이터를 끝없이 보낼 수는 없다. 각 데이터를 구별할 줄 알아야 하기 때문 문제점 bit 들의 연속을 하나의 묶음 (프레임 : frame)으로 자르는 것 수신 쪽이 프레임을 인식할 수 있도록 봉투를 씌워 묶는 것 프레임의 처음과 끝을 인식 전형적으로 네트워크 어댑터 (NIC)에서 구현된다. 어댑터는 호스트 메모리로부터 프레임 (데이터 + 헤더 일부분)을 메모리에서 가져온다. 바이트 중심 프로토콜 (Byte-Oriented Protocols) 보초 방법 (Sentinel Approach) BISYNC header와 data의 경계에 보조문자를 삽입한다. header는 가변 길이를 갖는다. IMP-IMP, PPP 문제점: 프레임의 데이터 부분에서 ETX ..

5. 인코딩 (Encoding)

인코딩 (Encoding) : 개요 신호(signal)은 물리적 매체를 통해 전달된다. 디지털 신호 아날로그 신호 데이터는 디지털 데이터만을 취급한다. 아날로그 데이터는 디지털 데이터를 변환한 것 문제 : 발신지에서 목적지로 보내려는 이진 데이터를 전달될 수 있는 신호로 인코드 해야 한다. 보다 일반적으로는 변조 (Modulation) 디지털 전송 (Transmission) 신호 중계 방법 아날로그 전송 : 신호를 단순 증폭 → 앰프(Amplifier) 사용 디지털 전송 : 신호에서 데이터를 복원하여 다시 신호화한다. 디지털 데이터를 담은 신호만 이용 가능하다 → 리피터 (repeater) 사용 거의 모든 전송 방법이 디지털 전송을 사용한다. (단, 원래 담긴 정보가 디지털 정보여야 repeater를 사..

4. 점대점(Point-To-Point) 링크 - 하드웨어 구성요소

하드웨어 구성요소 데이터 링크 계층 OSI 7계층의 1, 2계층은 무엇을 담당하는가? → 하나의 링크로 연결된 노드 사이의 비트묶음 (프레임) 교환 하나의 링크로 연결된 두 노드 점대점 연결 네트워크 : 가장 간단한 네트워크 일반적 네트워크 구성의 기본 block 노드란? 노드의 실체는? 링크란? 링크의 실체는? 점대점 연결에서의 통신의 실체 비트 교환 : 신호 인코딩 / 디지털 전송 비트 묶음 교환 : 프레이밍 (frame) 오류 검출 / 복구 하드웨어 구성 요소 : 노드(Nodes) 단말/호스트, 스위치/라우터 범용 (프로그래밍할 수 있는) 컴퓨터로 구성된다고 가정한다. (PC 등) 모든 노드는 컴퓨터 구조를 갖는다. 때때로 특수한 목적의 하드웨어로 대체되기도 한다. 유한 메모리 (제한된 버퍼 공간을..