728x90

분류 전체보기 209

OSI 7 Layer

OSI 7 Layer국제 표준화 기구에서 개발한 모델입니다. 네트워크의 제일 기본적인 개념이라고 생각합니다.계층명(프로토콜)의 형식으로 설명합니다.물리 계층(RS232)USB 케이블, 앰프, 리피터 같이 신호를 전달/증폭하는 역할을 하는 장치들이 속해 있다.물리 계층이라는 이름에 맞게 통신 변조와 같은 역할을 하기 때문에 데이터 송수신만 하고 오류 검증은 하지 않는다.데이터 링크 계층(CSMA/CD, CSMA/CA, Multiplexer)NIC, L2 스위치, AP, 기지국 등 Point to Point 간 디지털화 된 데이터들에 대해 비트 단위로 신호화 및 동기화를 하여 최대한 신뢰성 있는 전송을 보장한다. (최초 오류검증 수행)일반적으로 물리 계층에서 구현된 한 단위의 데이터인 프레임을 받아 통신 링..

WEEK 08 C언어 TIL(5월5일 월요일)

정글에선 공휴일도 쉬는 날이 아닙니다. 그래서 오늘은 주말간 쉰 죄책감으로 다시 힘내서 나아가보겠습니다.[목표]11장 완독하기(정리는 나중에)(echo 이후)퀴즈를 위한 키워드 개념 정리tiny 서버 구현(진행중)proxy 서버 구현10:00 ~ 10:40애플파이와 핫식스를 먹으며 11장 완독하기를 완료 했다. Tiny 서버 관련된 글은 Tiny 서버 구현시에 같이 하겠다.10:40 ~ 12:00내일이 퀴즈날이니 키워드에 따라 개념 정리를 해보겠다.12:00 ~ 13:30식사후 1시간 가량 취침.오늘 어린이날이라고 식당에서 선물 증정 이벤트가 있었다. 공휴일에 애써주시는게 정말 감사드린다...14:00 ~ 16:30운동(하체) 및 샤워 완료16:30 ~ 18:00이어서 11주차 키워드를 정리해보겠다. 중..

echo 서버 코드 분석(C언어)

echo 서버 코드 분석11장 같은 경우 아는 내용이 대부분이라 따로 정리를 하지 않았습니다. 만약에 프록시 서버까지 구현하고 시간이 남는다면 정리해볼 것 같습니다.echo는 서버와의 연결을 수립한 이후에 클라이언트는 표준 입력에서 텍스트 줄을 반복해서 읽는 루프에 진입하고, 서버에 텍스트 줄을 전송하고, 서버에서 echo 줄을 읽어서 결과를 표준 출력으로 인쇄합니다.echoclient.c(클라이언트)// 클라이언트 파일#include "csapp.h" // Robust I/O와 소켓 함수가 정의된 헤더 파일 포함int main(int argc, char **argv) { int clientfd; // 서버와 연결된 소켓 파일 디스크립터 char *h..

WEEK 08 일상 TIL(5월 3일 토요일 ~ 5월 4일 일요일)

5월 3일 토요일오늘은 딱히 많이 하진 못했다.먼저, 어제 다 못한 컴퓨터 시스템 10장 정리했다.밀린 벨로그, 티스토리 정리했다.지금까지의 8주차 내용을 벨로그와 티스토리에 개재했다.야간에 작업을 했다.너무 배고파서 먹었던 야식이다.5월 4일 일요일오늘은 집에 갔다왔다. 곧 어버이 날이라 갔다온 것도 있고, 재정비를 위해 간 것도 있다.네트워크 11장 echo 서버 구현까지 디테일하게 학습해보았다.23:00 ~ 진행중네트워크 11장 내용 확인, echo 서버 코드 분석echo 코드 분석 같은 경우는 따로 포스팅하도록 하겠다.오늘 맛있게 먹은 메밀 막국수어버이날 기념 꽃

컴퓨터 시스템 10장(시스템 수준 입출력)

유닉스는 모든 것은 파일이다.모든 언어의 런타임 시스템은 입출력을 수행하기 위한 고급 기능들을 제공한다. C는 버퍼를 통해 I/O를 수행하는 printf, scanf 같은 함수들을 표준 I/O 라이브러리에서 제공한다. 리눅스에서는 이러한 고급 I/O 함수들은 커널이 제공하는 시스템 수준 Unix I/O 함수들을 사용해서 구현되어 있다. 결국 이러한 I/O도 파일을 통해 구현이 되어 있다.10.1 Unix I/O리눅스에서 파일은 연속된 m개의 바이트이다.네트워크, 디스크, 터미널 같은 모든 I/O 디바이스들은 파일로 모델링되며, 모든 입력과 출력은 해당 파일을 읽거나 쓰는 형식으로 수행된다.파일 열기응용은 I/O 디바이스에 접근하겠다는 의도를 해당 파일을 열겠다고 커널에 요청하는 방법으로 알린다.커널은 식..

echo 서버 실행법(SSH)

echo 서버 작동 방법(도커 SSH 연결 기준)echo 파일 작성하기echo.c, echoclient.c, schserveri.c 를 인클루드 해야하므로 csapp.c 와 같은 파일에 둔다. 해당 포스팅은 코드 리뷰를 위한 글이 아니므로 따로 코드를 올려두지 않았다.책의 내용에 따라 3개의 파일을 작성한다.gcc -o echoserveri echoserveri.c echo.c csapp.c -lpthread를 통해 컴파일을 한다.→ 딱 봐도 그전에 쓰던 코드랑 다르다. 왜냐하면, csapp.c 또는 csapp.h 안에서 pthread(POSIX 쓰레드)를 사용하는데, 컴파일 할 때 -lpthread 옵션을 주어 pthread 관련 심볼들을 찾게 해준다.tiny와 Proxy 서버는 makefile를 통해..

WEEK 08 C언어 TIL(5월2일 금요일)

이번 주차는 목요일부터 시작하게 되어서 목요일 내용을 조금만 작성해보았다.5월 1일[목표]다음주차 준비하기23:00 ~노션 정리를 마쳤다. 벨로그 참조해서 티스토리 내용을 업로딩하겠다.[코어타임] 23:30 ~ 01:00우린 첫째날부터 코어타임을 가졌다. 이번 주차에 배울 전반적인 내용을 프리뷰 형식으로 학습하였다. 다음과 같으 내용을 학습하였다.소켓ip주소와 소켓mac주소파일 시스템(어렵다): 리눅스는 file discripter로 구현소켓 구현 방법이더넷TCPDMA(인터넷에서도 사용)NIC-DMA++ 새롭게 알게된 사실NIC라 불리우는 랜카드는 I/O 장치로 분류된다.01:00 ~ 1:30과제를 위한 깃 클론을 완료했다. 오늘은 일찍 퇴근했다.5월 2일[목표]파일 디스크럽터 정복하기코어타임 전까지 어..

웹 기술의 진화 (이동석 코치님)

프로토콜이란?컴퓨터끼리 통신하기 위한 규약입니다. 컴퓨터끼리 데이터를 주고받을때 지켜야합니다.초기 웹최초에는 텍스트 기반, 단순한 HTMl 문서만 표시 가능했다.사용자 인터페이스는 매우 제한 적이었고, 단순한 하이퍼링크를 눌러 문서를 탐색하는 것만 가능했다.최초의 웹 서버 CERN httpd는 정적인 html파일만 제공했다.서버는 단순한 파일 저장소 역할만 했고, 동적인 콘텐츠 없이 브라우저가 요청하면 HTML을 그대로 전송하는 방식이었다.Http란?웹브라우저와 웹서버 사이의 약속이다.http는 stateless 프로토콜이다.request,response 메시지로 구성했다.현재 Http/1.0, http/1.1, http/2.0이 현재 사용중이다.→ Stateless Protocol이란?요청 하나가 끝나..

WEEK 07 C언어 TIL(5월1일 목요일)

[목표]컴퓨터 시스템 9장 모든 개념 이해(시간 남으면 노션에 정리)환경 노션에 정리하기98점짜리 코드 정리해서 올리기다음주차 준비하기7주차 퀴즈 오답하기(포인터 마무리 공부는 완료)코드 리뷰하기동료 피드백하기9:50 ~ 10:30오늘 정글 카페에 새로운 신상품들이 많아서 홍루이젠 샌드위치를 사먹어봤다.10시부터 코드리뷰를 시작하겠다.10:30 ~ 12:10각 그룹별 7주차 말록랩에 대해 발표를 했다. 12:10 ~ 13:00식사를 하고 왔다.8주차 발제(13:00 ~ 13:30)작은 웹서버를 c언어로 만들기(tiney)프록시 서버 만들기(만약에 C언어 능력이 부족하면 1번만 수행하고 C언어 공부하기)어떤걸 깊게 들어가야되고, 어떤걸 대강 흐름만 알고 넘어가야할지 알아야한다.(나도 이게 젤 어려운 것 같..

Malloc Lab 98점 코드 분석

먼저 코드를 살펴보겠습니다.https://github.com/prkty/KJ_malloc_lab/blob/main/mm_98_clean.c해당 깃허브를 통해 전체 코드를 확인하실 수 있습니다.(주석 및 설명 추가)위의 코드를 분석하면 다음 표와 같습니다.항목설명할당자 종류명시적 가용 리스트 방식 중 segregated free list 방식 사용리스트 수LISTLIMIT = 16개의 크기별 분리 리스트 존재삽입 정책정렬된 주소 순으로 삽입 (오름차순 주소 정렬)분할 정책요청된 크기보다 큰 블록은 분할되며, 일부 조건에서만 분할을 안 함(16바이트 미만일때)병합 정책인접한 블록이 free이면 병합 (단, 다음 블록이 재할당 태그가 설정되어 있으면 병합하지 않음)재할당 정책REALLOC_BUFFER만큼의 추..

728x90