네트워크 레이어의 프로토콜은 세 가지가 공존하는데요, Routing Protocol(경로를 설정해 줌) - 이 프로토콜을 통해 포워딩 테이블을 작성합니다. IP Protocol(= routed protocol) - 주소 입니다. Datagram 포맷을 가지고 있습니다. ICMP Protocol(에러를 추적하고, 컨트롤해주는 프로토콜) IP의 데이터그램의 형식입니다. IPv4 방식이나, ver엔 4가 들어가구요, TTL 이라는 개념이 있습니다. 패킷이 여러 라우터들을 거쳐 지나가는데, 어쩌다 무한루프를 돌다가 좀비가 될 수 있으니 TTL 이란 것을 설정해주는데, 일종의 수명 입니다. Hop - Hop 을 할 때마다 TTL을 하나씩 감소시킵니다. TTL이 0이 되는 패킷은 폐기합니다. Flgs, Fragme..
우선, 개념을 복습하기에 앞서 스케줄링이 어디서 쓰이는지 알고 학습해야 합니다. 라우터 내에 일어나는 포워딩 과정에서, Input port가 아닌 Output port에서 버퍼링, 즉 datagram buffer queueing이 발생했을 때 어떤 패킷을 내보낼지 결정할 때 사용하는 정책입니다. FIFO Queue를 사용할 때는, 큐에 도착한 순서대로 내보내는데요, 실제 상황에서는, 큐가 꽉 찼을 때 새로운 패킷이 도착했을 경우 버릴 패킷을 정해야 합니다. 1. tail drop: 새로 들어오는 패킷을 버립니다. 2. priority: 우선순위 규칙에 따라서, 새로 온 것을 버리거나 기존 것을 제거합니다. 3. random: 들어오는 패킷과 쌓인 큐를 랜덤하게 뽑아서 버립니다. 2번의 경우는 자체적인 정..
지금 우리가 무엇을 공부하고 있는지 기억해야 합니다. 라우터 내부에서 일어나는 것은? 포워딩 이죠. 포워딩은? Input port로 들어온 것을 적절한 output port로 이동시켜주는 일이구요. lookup, forwarding queueing input port의 트래픽을 다 합친 것보단, 스위치 패브릭의 처리 속도가 느리기 때문에 Queueing은 필연적입니다. 그리고 패킷 스위칭에서 Store and forward / Queueing delay and loss가 여기서 일어난다고 이해할 수 있겠습니다. Queueing이 일어나는 주된 상황인, Head of Line blocking을 알아봅시다. 좌측 그림에서, 1번 포트와 3번 포트는 동일한 output port로 포워딩 하려고 합니다. 그런데..
스위칭 패브릭은 Input buffer로 들어온 패킷을, 적절한 output buffer로 패킷을 옮겨주는 것을 의미합니다. 그리고 switching rate라는 개념이 있는데요, 스위칭 속도로 이해할 수 있겠습니다. 스위칭 패브릭에는 세 가지 종류가 있습니다. memory 방식은, 처음 등장한 라우터의 방식입니다. 메모리 대역폭에 영향을 받고, 한 시점에 하나의 포워딩만 동작합니다. Bus 방식은 중앙 데이터 버스를 여러 컴포넌트가 공유하는 방식인데요, 메모리 방식보단 조금 나은데, 충돌이나 경합이 발생할 수 있습니다. crossbar 방식은, 가장 빠른 스위치 아키텍처가 필요할 때 사용하는데요, bus의 대역폭 문제도 극복했고, 지금 가장 많이 이용되는 방법입니다.
다짜고짜 강의자료부터 넣게 되네요. 라우터의 내부 구조를 알아봅시다. 우선, 크게 두 부분으로 나뉩니다. Control Plane / Data Plane Control Plane은 쉽게말해 경로 설정, 장비 간 통신, 라우팅 테이블 업데이트와 같은 네트워크의 동작을 제어하고 관리하는 역할을 합니다. 주로 소프트웨어의 영역이에요. Data Plane은 네트워크에서 실제 데이터가 전송되고 처리되는 부분인데요, 패킷이 이동되는 과정을 관리합니다. 스위칭, 라우팅 등이 일어나는 곳이에요. 스위칭 패브릭에는 여러 라우터 포트가 있는데요, 각자는 Input Port, Output Port로 역할이 고정된 것이 아니라 I로도 쓰이고, O로도 쓰이고 용도는 동적으로 변합니다. 각각의 포트에 따른 버퍼가 있는데, 이런 ..
네트워크 레이어 라고 하면 뭐가 가장 먼저 떠오르나요? 중간고사때 열심히 외웠던 OSI 7 Layer에서의 3계층이 떠오릅니다. Packet/Datagram 단위로 전송하고, IP, RIP, OSPF와 같은 프로토콜이 있고, End to End 전송을 목적으로 하구요, 주소는 IP주소가 주를 이룹니다. Network Layer - Sending host가 Receiving host에게 Segment를 전달합니다. - 보내는 쪽에서는 Segment를 Datagram으로 캡슐화 합니다. - 받는 쪽에서는, Datagram을 Segment로 디캡슐화 한 뒤, Transport Layer(4계층)으로 넘겨줍니다. - 모든 호스트(PC, 노트북 등)와 모든 라우터는 네트워크 계층의 프로토콜을 가지고 있어요. (1..
Linked List는.. 2학년 자료구조 시간에 처음으로 접했던 친구인데요, 당시 Doubly Linked List를 직접 구현하고 접근, 탐색, 삽입/삭제를 모두 구현해오라는 과제에 심히 충격을 받았던 기억이 있습니다. Singly Linked List, Doubly Linked List가 있고요, Singly는 한쪽 방향으로 접근하고, Doubly는 전/후 노드로 접근(탐색) 가능하다는 점이 차이가 있겠네요. Head의 Left는 NULL, Tail의 Right는 NULL로 구성해야 한다는 특이점이 있었구요. Singly는 메모리 사용이 적고, Doubly는 노드의 삽입, 삭제가 상대적으로 빠르다는 특징이 있습니다. 오늘은 구현보다는, 시간복잡도를 복습해보고 Array와 비교해보는 시간을 가졌습니다..
11월 18일 치뤄진 51회차 SQLd를 보고왔습니다. 김칫국 같지만 합격 안정권으로 생각하는데요, 공부 방법을 공유해볼까 합니다. 3학년 2학기와 병행중이고, 11월은 자소서로 너무 바빴기 때문에(솔직히 붙을지도 모르겠습니다...) 같이 스터디하는 친구가 자기는 일주일 했는데 3일이면 충분할거라해서;; 정말 딱 3일 올인? 했습니다. 시험이 토욜인데, 수욜에 시작했어요. 저는 전공자고, 지난 학기 데이터베이스 과목을 듣긴 했지만 SQL에 대해서는 기초만 배웠고(그렇지만 써본적은 조금 있음) 그것보단 해싱기법이라던지... 정규화나 B+Tree 같은 데이터베이스 내부의 자료구조와 처리방법을 공부했기 때문에 SQL에 그리 숙련된 편은 아니었슴다. 제가 추천하는 공부방법은 다음과 같습니다. 1. 노랭이를 무작..
SQLd를 준비해부자. 별다른 목적을 가지고 취득한다기 보다는... 1학기때 DB도 들었고, 이번에 동아리 서버파트를 맡으면서 스터디원 분이 한번 따봐라~ 어렵지 않다~ 하셔서 도전. 자격증을 취득해보는건 또 첨이다. 일단 11.18(토)에 시험 신청을 해놨고, 공부는 11.11(토) 부터 시작함. 1년에 네 번 밖에 기회가 없는 시험인데, 미리 알아보길 잘했다. 백그라운드는 다음과 같다. - 지난 1학기 데이터베이스 수강, 기말고사 105/120점으로 1등함. (성적은 비밀임..) -- 다시 보니 기억이 잘 안남... - 이번에 서버 공부 처음 하면서 DB 테이블 처음 설계해봄;; -- 엉망진창임 인생이 우연의 연속인게, 어쩌다보니 DB를 들었고, 어쩌다보니 DB 짜고있을 때 시험일정이 생겨서 응시를 ..
좋은 걸 들고왔습니다. 오랜만에 테이블을 보니, 정확히 읽는 법이 가물가물 했습니다. 테이블을 기깔나게 만들어 놓고, 화살표를 잘못 그려 20점을 감점당했던 기억이 있습니다. 화살표가 중요한 의미인지 몰랐기 때문입니다. 이제 잘 읽을 수 있을 것입니다. 읽을 줄 알면 좋을텐데, 읽어도 그게 무슨 의미인지 모르면 아무 의미가 없겠죠? [https://velog.io/@gillog/DB-11-1N-NM-%EA%B4%80%EA%B3%84] 를 참고하였습니다. 1:1 관계 1:1 관계란 상대 엔티티와 단 하나의 관계만 가지는 것을 말합니다. 우리나라는 일부일처제 입니다. 1:N 관계 1:N 관계는 한 쪽 엔티티가 관계를 맺은 엔티티 쪽의 여러 객체를 가질 수 있는 것을 의미합니다. 1:N 관계는 N:M 관계처럼..