2025/01 40

DMA를 알면 고성능 소켓이 보인다.

DMA를 알면 고성능 소켓이 보인다.위 그림은 저번 포스팅에서 이야기 했던 과정이다. 여기서 I/O 관리자는 CPU가 어떤 장치한테 뭔가를 직접 가져오면 장치가 반응이 늦을 것을 대비하여 I/O관리자(M/B)가 도와준다. 또한 RAM의 일부를 Device를 위해 예약을 걸수도 있는데 이 과정에서 I/O관리자한테 알려준다.CPU가 어떤 장치한테 정보를 보내는 방법CPU가 RAM의 예약된 메모리에 정보를 보낸다. (복사)어떤 경우는 데이터가 RAM의 내부에서 또 일어난다. (복사)복사된 데이터를 장치의 RAM에 또 복사한다.이 모든 과정에서 I/O 매니저는 역할을 수행한다. 근데 의문점이 이렇게 복사하는게 아니라 한번에 CPU에서 Device로 보낼 수 있는 방법은 없을까?CPU에서 Device로 한번에 보..

운영체제 2025.01.12

인터럽트에서 Direct X까지

인터럽트사전적 의미로 '끼어들다', '중단시키다' 정도의 의미를 가지는 말로 프로그램을 실행하는 도중에 예기치 않는 상황이 발생할 경우 현재 실행중인 작업을 멈추고 발생된 상황을 처리한 후 다시 실행중인 작업을 복귀하는 것을 말한다. 인터럽트의 종류외부 인터럽트전원이상 인터럽트(Power faul interrupt): 말 그대로 정전 + 절전모드, 파워이상등기계착오 인터럽트(Machine check interrupt): CPU의 기능적 오류외부신호 인터럽트(External interrupt):타이머에 의한 인터럽트: Preemptive 개념을 생각하면 된다. 자원이 할당된 시간이 다 끝난 경우키보드로 인터럽트 키를 누른 경우: Control + Alt + Delete => 작업 관리외부장치로부터 인터럽트..

운영체제 2025.01.11

컴퓨터는 3층집

개요운영체제는 S/W다. 일종의 platform이다. S/W는 logical이며, 이를 다른말로 하면, Virtual, 즉 가상화이다. 가상화기술은 H/W를 S/W로 구현한 것이 가상화 기술이다.운영체제는 MS Word와 같은 S/W다. 단, 차이는 user application 단의 process들을 support한다. 즉, application process들이 잘 작동하도록 도와주는 것이다. 또 하나 다른 점은 H/W를 제어 및 관리한다. 대부분 범용 OS가 멀티 태스킹 즉, 멀티 프로세싱 시스템이다. 그리고 나쁜 프로세스들을 감지하여 나쁜짓을 하지 못하게 막는 역할도 한다.H/W 용어 정리Interrupt: 한마디로 '벨 소리'이다. 내가 CPU라고 가정하고 나를 방해하는 요소가 있는데 그 요소가..

운영체제 2025.01.11

웹 서비스 기본 구조

개요네트워크같은 인프라구조를 공부할 때 가장 중요한 것이 뭐냐면 전체적인 구조를 이해하는 것이다. 웹서비스에서 쓰이는 기본 프로토콜이 HTTP이다. 근데 HTTP라는 것은 TCP/IP연결 다음에 존재한다. 그러니까 HTTP 트래픽은 소켓 수준에서 만들어진 것이고 따라서 스트림 즉, 끝을 알기 어려운 데이터가 쭉 나열진 형태에서 파생된 것이다.  문제는 네트워크(TCP/IP와 같은 인터넷 네트워크)로 무언가를 보낼 때는 IP 최대크기 단위 MTU가 1500 밖에 안되니까 이 스트림을 TCP 스택 수준에서 짜른다. 이 짤려진 조각 1개를 세그먼트라고 한다면 이 세그먼트를 패킷으로 Encapsulation 해서 전송한다. 이렇게 스트림 데이터는 분해가 일어난다. 그래서 HTTP 트래픽은 가로형태로 데이터를 이..

2025.01.10

굵고 짧게 살펴보는 HTTP

굵고 짧게 살펴보는 HTTPHTTPHTTP는 HTML문서를 전송받기 위해 만들어진 응용프로그램 계층 통신 프로토콜이다.1996년에 1.0스펙이 발표되었으며, 1999년 6월에 1.1이 발표되었다.기본적으로 클라이언트의 요청에 대응하는 응답형식으로 작동한다.헤더는 다음과 같이 분류된다.일반 헤더요청 헤더응답 헤더엔티티 헤더요청에 사용되는 메서드는 주로 GET, POST이다.HTTP는 HTML문서를 전송하고 전송받기 위해 만들어진 L7 프로토콜이다. 핵심은 헤더이다. 헤더는 TCP/IP에서 이야기가 많이 나왔다. 어떤 단위로 데이터다 잘라지는데 IP 네트워크인 경우 최대 MTU로 잘라진다. 그래서 이 MTU에 IP Header가 나오고 그 뒤에 Payload가 온다. 중요한 것은 단위 데이터로 잘라지다 보니..

2025.01.10

URL과 URI

URL과 URIUniform Resource LocatorUniform Resource Identifier웹 기술을 이야기 앞에 있어서 기본적인 용어정리가 필요하다. 그 중에 가장 중요한 용어 2가지가 URL과 URI다. 우리가 앞서서 도메인에 대해 배웠다. 도메인에는 Domain Name과 Host Name으로 분리해서 생각하는게 좋다. 여기서 중요한게 URL이 있고 URI가 있는데URL은 Uniform Resource Locator로 위치지정자로 말할 수 있고URI는 Uniform Resource Identifier로 식별자라 말할 수 있다.( 자원의 위치에 의존하지 않는 고유한 식별자로 사용)그럼 여기서 Resource는 무엇일까? 웹 기술이라는 것에 한정지어서 생각해보자. 웹을 이야기할 때 가장 ..

2025.01.10

웹 기술 창시자와 대한민국의 인터넷

웹 기술 창시자와 대한민국 인터넷웹 기술의 창시자CERN(입자물리연구소)에서 컨설턴트로 근무정보검색 시스템 구축이를 바탕으로 현재의 웹 기술을 창안HTML, HTTP의 창시자개요(어쩌다 나오게 되었나)아마도 네트워크 공부하는 분들의 많은 이유 중 하나가 웹을 제대로 이해하기 위한 부분도 있을 것이다. 좋든 싫든 2023년 현재 왠만한 서비스들은 웹기술로 작동한다. 이런 웹기술을 처음 창시한 분이 팀 버너스리이다. 팀 버너스리라는 원래 유럽의 입자물리 연구소에서 일을 하였다. 또한 여기서 정보검색 시스템을 구축하였다. 그리고 그게 바탕이 되서 오늘날의 웹 기술이 탄생한 것이다. 여기서 한가지 주목해봐야 하는 것이 '입자물리연구소'이다. 연구소의 임직원분들이 하는 일이 논문을 보는것이다.A라는 논문에는 제목..

2025.01.10

한 번에 끝내는 DNS

DNS분산 구조형 데이터베이스데이터베이스 시스템(DNS 네임서버)의 분산구성데이터 영역별 구분(Domain Zone) 및 분산관리도메인의 네임서버 및 도메인 데이터는 해당 관리주체에 의해 독립적으로 관리됨트리구조의 도메인 네임(Domain Name) 체계Domain: 영역, 영토를 의미도메인 네임의 자율적 생성생성된 도메인 네임은 언제나 유일하도록 네임체계 구성개요OSI 7 Layer의 L1~L4는 Infra Structure로 볼 수 있다. L5~L7의 Application 뭔가 목적화 되는 것이고 이 Application들을 위해서 Infra가 존재하는 것이다. 그래서 우리가 인터넷을 이루고 있는 각 종 서비스라는 것이 Application 계층에 존재한다. 근데 Application 계층에 존재하는..

2025.01.10

TCP 연결과 게임버그

TCP 연결과 게임버그어떤 MMORPG게임에서 아이템 복제 버그가 발생하였다.이는 논리적 TCP연결과 물리적 링크간 차이를 이용한 시간차 공격이라 볼 수 있으며 연결이 사실은 End-point의 주관적 판단에 불과하다는 것을 보여준다. TCP연결이 착각이라고 말했는데 이것과 관련해서 악용한 해킹사례가 있었다.연결은 사실 End-point의 주관적인 판단에 불과하다. 즉 보안성이 전혀없는 판단이라는 것이다. 그래서 연결이 그 자체만으로 취약하다. 어떤 게임에서 이것과 관련한 버그가 있었다. 어떤 게임이 있으면 서버가 있을 것이고 서버에 사용자들이 접속해 있을 것이다. 예를들면 철수,영희,길동이가 접속해 있다 하자. 여기서 철수는 고렙이고 영희는 저렙이고 길동이라는 적군을 물리쳐야 한다고 하자. 그래서 고렙..

네트워크 2025.01.10

TCP에서의 연결이 착각...인가?

'파일 다운로드 중 LAN케이블을 분리했다가 다시 연결하면 어떻게 될까?' 우리가 TCP/IP로 어딘가 연결해서 파일을 다운로드 한다고 하자. 근데 여기서 LAN케이블을 잠깐 빼보자. 그러면 TCP연결은 어떻게 될까? 과연 이 연결은 유지될까? 끊어질까? 우리가 연결을 끊었다는 것은 L4에서의 연결이 끊어졌다는 것이다. 근데 내가 L1수준에서 LAN선을 잠깐 뽑았을 때 결과는 어떻게 될까? 일단 결론부터 보면 TCP 연결은 유지된다. 물론 우리가 LAN선을 얼마동안 길게 뽑아두었는지와 관련이 있을 것이다. 사실, RFC라는 표준문서에 기술되어 있는 부분과 실제 범용OS에서 구현되어 있는 것이 다르다. 그래서 이 부분에 대한 현실적인 판단이 필요한데 그리고 이러한 차이때문에 상단 process를 개발하는 ..

네트워크 2025.01.10