분류 전체보기 (357) 썸네일형 리스트형 실습 1-3. 저수준 파일 입출력과 파일 디스크립터 * 저수준 파일 입출력 write() read() 운영체제가 제공하는 함수 기반 파일 입출력 표준이 아니라서 운영체제에 대한 호환성이 없음 리눅스는 소켓도 파일로 간주해서 저수준파일 입출력함수를 기반으로 소켓 기반의 데이터 통신 가능 *파일 디스크립터 운영체제가 만든 파일을 구분하기 위한 일종의 숫자 저수준 파일 입출력 함수는 입출력을 목적으로 파일 디스크립터를 요구함 조수준 파일 입출력 함수에게 소켓의 파일 디스크립터를 전달하면 소켓을 대상으로 입출력을 진행 파일 디스크립터 대상 0 표준입력 1 표준출력 2 표준에러 [파일 열기 닫기] #include #include #include int open(const char* path, int flag); path : 파일 이름을 나타내는 문자열의 주소값 전.. 실습 1-2. 서버소켓, 클라이언트소켓 구현 https://snnchallenge.tistory.com/55 불러오는 중입니다... [서버소켓] 소켓 생성 -> ip port 번호 할당 -> 연결요청 가능한 상태로 변경 -> 연결 요청 수락 https://github.com/o920/inha/blob/master/ComputerNetworks/hello_server.c o920/inha course. Contribute to o920/inha development by creating an account on GitHub. github.com #include #include #include #include #include #include void error_handling(char* message); int main(int argc, char* a.. 실습 1-1. 네트워크 프로그래밍과 소켓 * 네트워크 프로그래밍 네트워크로 연결된 둘 이상의 컴퓨터 사이에서의 데이터 송수신 프로그램의 작성 소켓을 기반으로 프로그래밍을 해서 소켓프로그래밍이라고도 함 *소켓 네트워크 연결 도구 운영체제에 의해 제공되는 소프트웨어적인 장치 (unix 소켓, windows 소켓) 소켓은 프로그래머에게 데이터 송수신에 대한 물리적, 소프트웨어적 세세한 내용을 신경쓰지 않게함 *소켓을 전화에 비유 소켓은 socket함수의 호출을 통해서 생성 전화를 거는 용도의 소켓과 전화를 수신하는 용도의 소켓으로 구분됨 [전화를 수신하는 용도의 소켓] : 리스닝 소켓, 서버 소켓 - 소켓 생성 #include int socket(int domain, int type, int protocol); 성공 시 파일 디스크립터를 반환하고 실.. 3. 네트워크 코어 : 패킷스위칭 packet switching, 서킷 스위칭 circuit switching *네트워크 코어 하나의 망이 매쉬 형태로 되어 있음 하나의 링크가 10Gbps 일 수도 있고 100Gbps일 수도 있음 -> 링크로 속도 차이가 날 수 있음 데이터를 보내게 되면 full link capacity(최대 속도)로 보내는 것 *패킷 스위칭 랩탑이 L개의 비트가 있고 R bps로 보낼 때 중간에 라우터가 있고 R bps로 목적지까지 데이터를 보내려 한다. 하나의 링크로 되어있다면 rate는 L/R이 되지만 중간에 라우터가 있고 링크가 하나 더 있으면 2L/R이 됨 전송 방식이 store and forward, 중간에 라우터가 데이터를 받으면 메모리에 저장하고 다시 forwarding하는 방식 end-to-end delay는 2L/R이 됨 *PACKET SWITCHING : QUEUEING DE.. 2. 네트워크 엣지 : 앤드 시스템, 엑세스 네트워크, 링크 * 네트워크 구조 - 네트워크 엣지 : 호스트(클라이언트, 서버) - 엑세스 네트워크 : 유무선 커뮤니케이션 링크 - 네트워크 코어 : 엑세스 네트워크를 연결하는 것 *엑세스 네트워크 - 집에있는 네트워크, 학교나 회사에 있는 기관 엑세스 네트워크, 스마트폰, 등을 연결 코어의 첫 라우터와 연결이 되면 endsystem이 연결됐다고 함 - 주위 다른 디바이스와 공유 shared, 나 혼자서만 연결하는 dedicated * DSL : digital subscriber line 인터넷 제공업체 -> DSLAM -> splitter -> DSL 모뎀 : 데이터 통신 -> 인터넷 엑세스 -> 음성 통신 - telephone line을 통해서 central office DSLAM - upstream 보통 1Mbp.. 1. 인터넷과 프로토콜 *인터넷이란 : bolts and nuts view - 수백개의 연결된 컴퓨팅 디바이스 host = endstsyem 모든 디바이스를 말함 , pc, 서버, 노트북, 스마트폰 - communication links : 유 무선의 네트워크 연결 광, 동축, 전자파, 위성 통신속도 bandwidth는 bps로 표현 - 패킷 스위치 : 호스트와 커뮤니케이션 링크를 잇는 것 라우터 - ip기반 3계층 네트워크, 스위치 - mac주소 사용 2계층 - 인터넷 : 네트워크들의 네트워크 - 프로토콜 : 통신 규약 e.g. TCP IP HTTP SKYPE 802.11 - 인터넷 표준화 : RFC, IETF * 프로토콜이란 - 사람 : 어떤 질문이 있을 때 그 질문에 예상된 대답을 하는 것 - 네트워크 : 어떤 데이터를 .. 4. 다이어그램 UML Diagram 1) use case diagram use case는 사용 예제이다. 소프트웨어 사용자는 사람이 될 수도 있고, 다른 소프트웨어가 될 수도 있다. 사용자와 소프트웨어 간의 연관성을 보여주고, 어떤 일을 위해서 소프트웨어가 어떻게 작동되는지를 그린 다이어그램이다. - 네모 박스가 시스템이다. 바운더리가 있는데 바운더리는 시스템과 외부 시스템을 구별하는 것이다. - 시스템 내부의 타원형이 use case이다. - 그 use case와 관련된 외부 actor가 있다. 사람일 수도, 시스템일 수도 있다. 2) activity diagram 소프트웨어를 진행할 때 일을 순차적으로 보여주는 것이다, 3) class diagram 소프트웨어 안에 구체적인 일을 하는 것이 클래스고, 그 클래스가 어떻게 작동하는 지를 .. 3. UML은 무엇인가 Unified Modeling Language UML은 일종의 설계 도구라고 생각하면 된다. 소프트웨어는 무작정 구현하는 것이 아니고 설계 과정이 필요하다. 이 때 무작정 설계하는 것이 아니라 TOOL을 사용해서 설계한다, MODELING은 디자인이라고 생각하면 된다. 컴퓨터, 소프트웨어에 관련된 책을 보면 디자인이라는 말보다 모델링이라는 말을 많이 쓰고, 컴퓨터라는 단어보다는 머신이라는 단어를 많이 사용한다. 머신은 컴퓨터와 같은 말이고 모델링은 디자인 설계를 의미한다. LANGUAGE는 소통하기 위한 언어. 컴퓨터 용어에서는 사람과 사람이 소통하고, 시스템과 사람이 소통해야 한다. 설계하는 사람과 설계하는 사람이 소통해야하는 언어이다. 설계 도면을 그려놓으면 A,B,C 설계자, 프로그래머 모두가 이해.. 이전 1 ··· 36 37 38 39 40 41 42 ··· 45 다음