컴퓨터 구조 x86-64 아키텍처: 레지스터 x64 아키텍처에는 범용 레지스터, 세그먼트 레지스터, 명령어 포인터 레지스터, 플래그 레지스터가 존재한다. 범용 레지스터 | Grenral Register x86-64에서 각각의 범용 레지스터는 8바이트를 저장할 수 있으며, 부호 없는 정수를 기준으로 $2^{64-1}$까지의 수를 나타낼 수 있다. 자주 쓰이는 범용 레지스터들 이름 주용도 rax (accumulator register) 함수의 변환 값 rbx (base register) x64에서는 주된 용도 없음 rcx (counter register) 반복문의 반복 횟수, 각종 연산의 시행 횟수 rdx (data register) x64에서는 주된 용도 없음 rsi (source index) 데이터를 옮..
컴퓨터 구조 | Computer Architecture 컴퓨터 구조는 컴퓨터의 기능 구조에 대한 설계, 명령어 집합구조, 마이크로 아키텍처, 그리고 기타 하드웨 및 컴퓨팅 방법에 대한 설계 등이 포함된다. 컴퓨터의 기능 구조에 대한 설계 컴퓨터가 연산을 효율적으로 하기 위해 어떤 기능들이 컴퓨터에 필요한지 고민하고, 설계하는 분야이다. 대표적으로 폰 노이만 구조, 하버드 구조, 수정된 하버드 구조가 있다. 폰 노이만 구조 연산과 제어를 위해 중앙처리장치(CPU)를, 저장을 위해 기억장치(Memory)를 사용한다. 그리고 장치간에 데이터나 제어 신호를 교환할 수 있도록 버스(bus)라는 전자 통로를 사용한다. 중앙처리장치 | CPU CPU는 프로그램의 연산을 처리하고 시스템을 관리하는 컴퓨터의 두뇌이다. ..
세그먼트 리눅스에서 프로세스의 메모리를 크게 5가지의 세그먼트(Segment)로 구분합니다. 세그먼트란 적재되는 데이터의 용도별로 메모리의 구획을 나눈 것이다. 코드 세그먼트, 데이터세그먼트, BSS 세그먼트, 힙 세그먼트, 스택 세그먼트로 구분한다. 메모리를 용도별로 나누는 이유는, 각 용도에 맞게 적잘한 권한을 부여할 수 있기 때문이다. 권한에는 읽기, 쓰기, 실행이 존재하며, CPU는 메모리에 대해 권한이 부여된 행위만 할 수 있다. 코드 세그먼트 | Code Segment 실행 가능한 기계 코드가 위치하는 영역으로 텍스트 세그먼트(Text Segment)라고 불린다. 권한 : 읽기, 실행 *쓰기 권한이 있으면 공격자가 악의적인 코드를 삽입하기 쉬워지므로, 대부분의 현대 운영체제는 이 세그먼트에 쓰..
Performance | 성능 네트워크 성능은 Delay(지연), Throughput(처리율), Packet loss(패킷 손실)가 있다. 그리고 Congestion control(혼잡 제어)는 성능을 향상 시킬 수 있다. *Congestion control(혼잡 제어)는 Packet loss와 서로 연관이 있다. Delay | 지연 Delay에는 transmission delay(전송 지연), propagation delay(전파 지연), processing delay(처리 지연), queuing delay(대기 지연) 이렇게 4가지가 있다. Transmission Delay | 전송 지연 전송 지연은 1~100까지 보내는 시간을 말한다. $$Delay_{tr}= \frac{Packet length}{..
Packet Switching | 패킷 스위칭 기법 라우터는 데이터를 전송하기 위한 장비이다. 라우터는 입/출력 포트 사이에 연결을 만드는 관점에서의 스위치이다. 이 기법에는 Datagram Approach와 Virtual-Circuit Approach가 있다. Datagram Approach | 독립적으로 처리 "비연결형 서비스" 각 패킷을 독립적으로 처리하는 커넥션리스 서비스를 제공하도록 설계되어, 각 패킷은 다른 패킷과 관계없이 전달된다. 즉, 송신자 측에서 패킷을 조각내어 보낸다음 수신자 측에서 패킷을 조립하여 재구성된 패킷을 상위 계층에 전달한다고 생각하면 쉽다. 장점 : 단순하다. (각 패킷이 독립적으로 처리되므로 패킷의 크기나 전송 시간이 다양한 경우에 적합) 단점 : 패킷의 도착 시간이 달..
Source | 송신기 상위 계층에서 들어오는 데이터에서 패킷을 생성합니다. IP 패킬 헤더에는 소스 및 대상의 Logical addresses(논리적 주소(=IP주소))가 포함된다. 패킷을 조각내어 전송이 가능하다. Destination | 수신기 IP주소를 확인(인증)한다. 조각낸 패킷을 다시 조립하여 재구성된 패킷을 상위 계층으로 전달한다. Switch or Router | 중간 노드 패킷의 라우팅을 담당한다. (우체국과 같은 역할) 라우팅 테이블을 참조하여 패킷을 전송해야 하는 목적지(인터페이스)를 찾는다. 참고자료 Error Control in Network layer | 오류 검사 네트워크 계층에서의 오류 검사는 전송 속도를 늦추기 때문에 비효율적이라고 할 수 있다. 그러나 error cont..
Communication at the network layer | 네트워크 계층에서의 통신 Network 계층은 누군지(어딘지) 경로를 찾아주는 역할은 한다. Definition of Network Layer | 네트워크 계층의 정의 네트워크 계층은 데이터그램(패킷)의 호스트 간 전송을 담당한다 전송 계층에 서비스를 제공 데이터 링크 계층에서 서비스를 수신 Packetizing | 패킷화 네트워크 계층의 의무는 payload를 변경하거나 사용하지 않고 송신자에서 수신자에게 전달하는 역할을 한다. payload는 예를 들어, 인터넷에서 이메일을 보낼 때, 이메일의 내용이 Payload가 된다. 이메일의 제목과 수신자와 같은 정보는 Header(헤더)에 포함된다. Routing and Forwarding |..
Routers and Switches | 라우터와 스위치 Routers : 가고 싶은 곳을 정해서 갈 수 있고, 논리적인 생각을 할 수 있음. 즉, 경로 설정이 가능함 Switches : 경로가 이미 정해져 있음 Internet : 인터넷은 결국 네트워크를 네트워킹 한 것임 Internet standards | 인터넷 표준 RFC : request for comments IETF : Internet engineering task force